线程
线程:是操作系统能够运行的最小单位,进程中有很多线程,它们共享进程的内存和资源
分类:
- 用户线程:自己创建和管理的
- 守护线程:JVM结束而结束(垃圾回收)
IO密集数:CPU核心数量 * 2
CPU密集数:CPU核心数量 + 1
线程池
作用:避免频繁创建和销毁线程的开销
执行过程
1,提交线程,如果没有达到核心线程数,那就创建核心线程
2,如果大于核心线程数,小于队列数,放到工作队列
3,如果超出队列数,小于最大线程数,则创建新线程
4,如果超出最大线程数,实现抛弃策略
参数
核心线程数
CorePoolSIze
默认情况下,核心线程不会被回收
最大线程数
maximumPoolSize
工作队列
workQueue
固定线程队列
无限线程队列
空闲时间
keepAliveTime + TimeUnit
非核心线程的最大空闲时间
超时后销毁,直到只剩下核心线程
线程工厂
ThreadFactory
创建新线程,用于给线程起名字
抛弃策略
AbortPolicy(默认):直接抛弃,会抛出异常
DiscardPolicy:丢弃线程,不抛出异常
DiscardOldestPolicy:抛弃最老的线程,然后执行当前线程
CallersRunPolicy:调用者运行
实现方法
ThreadPoolExecutor
169万+

被折叠的 条评论
为什么被折叠?



