线程池用过吗?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