一、ThreadPool與Task?php
線程池的優勢:① 下降資源消耗。經過重複利用已建立的線程下降線程建立和銷燬形成的消耗。html
② 提升響應速度。當任務到達時,任務能夠不須要等到線程建立就能當即執行。redis
③ 提升線程的可管理性。線程是稀缺資源,若是無限制的建立,不只會消耗系統資源,還會下降系統的穩定性,使用線程池能夠進行統一分配。框架
可是線程池不支持線程的取消、完成、失敗通知等交互性操做,不支持線程執行的前後順序。爲了彌補實現上述功能所做的額外工做,微軟在線程池的基礎上進行了優化,提出了Task。優化
二、Task的啓動方式?spa
① var task = Task.Run(()=>{});線程
② var task = new Task(); task.Start();htm
③ CancellationTokenSource cts = new CancellationTokenSource();blog
TaskFactory taskFactory = new TaskFactory();隊列
Task[] tasks = new Task[]{ taskFactory.StartNew(()=>Add(cts.Token)) };
taskFactory.ContinueWhenAll(tasks, TasksEnded, CancellationToken.None);
三、什麼是委託?委託的寫法有哪些?
委託:將方法看成另外一個方法的參數傳遞。
委託的寫法:① delegate
② Action<T>與Func<T>
四、有哪些IOC框架?http://www.javashuo.com/article/p-pezcymnb-ee.html
Autofac/Unity/Castle Windsor/Spring.NET/StructureMap/Ninject/微軟自帶的DI
五、有哪些基於redis的擴展?https://www.php.cn/redis/422232.html
Jedis/Lettuce/Redisson
六、隊列http://www.javashuo.com/article/p-zprzvjvi-mp.html
RabbitMq、Notify(阿里)、QMQ(去哪兒)、Apache Kafka
七、ABP、DDD