基础知识记录
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框架?
autofac/unity/castle windsor/spring.net/structuremap/ninject/微软自带的di
5、有哪些基于redis的扩展?
jedis/lettuce/redisson
6、队列
rabbitmq、notify(阿里)、qmq(去哪儿)
7、abp、ddd