一、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