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