image.png
image.png

并发工具类:

  • 为了并发安全:互斥同步、非互斥同步、无同步方案
  • 管理线程、提升效率
  • 线程协作

为了线程安全:

底层原理分类:

  • 互斥同步
  • 非互斥同步
  • 结合互斥和非互斥同步
  • 无同步方案、不可变

线程池

创建线程池:


线程添加规则:


线程池的创建方式:自动和手动


常见线程池的特点:
1、FixedThreadPool:
image.png
2、newCachedThreadPool:可缓存线程池,自动回收多余线程
image.png
3、ScheduledThreadPool:支持定期和周期任务
4、newSingleThreadExecutor:固定一个线程的线程池,无界队列
5、workStealingPool:子任务、窃取,jdk 1.8

勾子方法,在线程池每个任务执行前后做处理,如日志、统计等:

线程池的接口关系:


ThreadPoolExecutor.png

线程池状态:

  • running:接受新任务并处理排队任务
  • shutdown:不接受新任务,但处理排队任务
  • stop:不接受新任务,也不处理排队任务,并中断正在进行的任务
  • tidying:所有的任务都已终止,workerCount 为 0 时,线程会转换到 tidying 状态,并将运行 terminate() 钩子方法
  • terminated:terminate() 运行完成

ThreadLocal