面试需要知道的那些事

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

posted @ 2020-04-15 10:45  酷学大叔  阅读(331)  评论(0编辑  收藏  举报