多线程概念(小小复习一下)
、
1、死锁(最糟糕的,当然另两种也好不到哪里 去)
2、饥饿 (某个线程一直得不到资源,无法执行下去
3、活锁(对太谦让了, 你让出资源我也让出资源)
二、
1、阻塞:
线程池:
除了executors 自带默认的几种 线程池,我们 一般使用自己定义 的,通过ThreadPoolExecutor来 实例化,
corePoolSize 有任务来时,线程小于 corePoolSize,则优先生成线程
maximumPoolSize 最大线程数,当前线程数不可以大于最大线程数,结合后面的workQueue进行控制
keepAliveTime 当线程数超过corePoolSize 多长时间部分的线程处于空闲时间多长,会被回收
threadFactory 生成线程的工厂类
handler 拒绝异常类, 当线程太多来不及处理
workQueue:队列 (直接队列、有界队列、无界队列(maximunpoolsize会失效),优先级队列)