线程池用过吗?ThreadPoolExecutor谈谈你的理解?
为什么用线程池,优势
线程池如何使用
-
架构说明
-
编码实现
-
了解
-
重点
-
Executors.newFixedThreadPool(int nThreads);
-
Executors.newSingleThreadExecutor();
-
Executors.newCachedThreadPool();
-
-
-
ThreadPoolExecutor
线程池的几个重要参数介绍
-
7大参数
-
- corePoolSize
银行网点形象比喻
说说线程池的底层工作原理
彩蛋
-
1.适配器模式
- 透传
传接口,扩展性,适配性得到保证(永远传参传接口,经验之谈) - 构造注入(spring,FutureTask等)
- 透传
-
2.技术架构师
- 思想(面向接口编程)
-
3.面试造火箭(理论),实际拧螺丝
理论是指导实践的核心支持 -
4.查看window的CPU核数
1)计算机管理
2)任务管理器
3)代码获取
System.out.println(Runtime.getRuntime().availableProcessors());
-
5.任何牛逼的程序都是基于硬件的
早期电脑都是单核的,1995年java诞生,当时多线程其实是假的多线程,有很多上下文切换
现在多核出来后,可能一个线程独占一个CPU,原来是多个线程共享一个CPU(有竞争关系)
-
6.java面向对象,需要什么new什么
但是学过spring后,让自己new的机会很少
-
7.池化技术
DRUID
ThreadPool