1、ThreadPool與Task? 線程池的優點:① 降低資源消耗。通過重覆利用已創建的線程降低線程創建和銷毀造成的消耗。 ② 提高響應速度。當任務到達時,任務可以不需要等到線程創建就能立即執行。 ③ 提高線程的可管理性。線程是稀缺資源,如果無限制的創建,不僅會消耗系統資源,還會降低系統的穩定性, ...
1、ThreadPool與Task?
線程池的優點:① 降低資源消耗。通過重覆利用已創建的線程降低線程創建和銷毀造成的消耗。
② 提高響應速度。當任務到達時,任務可以不需要等到線程創建就能立即執行。
③ 提高線程的可管理性。線程是稀缺資源,如果無限制的創建,不僅會消耗系統資源,還會降低系統的穩定性,使用線程池可以進行統一分配。
但是線程池不支持線程的取消、完成、失敗通知等交互性操作,不支持線程執行的先後順序。為了彌補實現上述功能所作的額外工作,微軟線上程池的基礎上進行了優化,提出了Task。
2、Task的啟動方式?
① var task = Task.Run(()=>{});
② var task = new Task(); task.Start();
③ CancellationTokenSource cts = new CancellationTokenSource();
TaskFactory taskFactory = new TaskFactory();
Task[] tasks = new Task[]{ taskFactory.StartNew(()=>Add(cts.Token)) };
taskFactory.ContinueWhenAll(tasks, TasksEnded, CancellationToken.None);
3、什麼是委托?委托的寫法有哪些?
委托:將方法當作另一個方法的參數傳遞。
委托的寫法:① delegate
② Action<T>與Func<T>
4、有哪些IOC框架?https://www.cnblogs.com/lhxsoft/p/8609013.html
Autofac/Unity/Castle Windsor/Spring.NET/StructureMap/Ninject/微軟自帶的DI
5、有哪些基於redis的擴展?https://www.php.cn/redis/422232.html
Jedis/Lettuce/Redisson
6、隊列https://www.cnblogs.com/binghe001/p/12700828.html
RabbitMq、Notify(阿裡)、QMQ(去哪兒)、Apache Kafka
7、ABP、DDD