线程池-ThreadPoolExecutor

线程池的原理:java

因为我们新版jdk中java线程和操做系统线程是一对一的,因此启动线程是经过jvm调用操做系统接口来建立线程的(Thread.start(start0()是个native方法))jvm

而后start0方法启动的操做系统线程如何调用Thread的run方法呢?没错就是经过jvm来调用的java中Thread的run方法的操作系统

 

那么线程池的原理就是经过一个计数器和work队列来维护线程池的大小线程

每建立一个Thread(经过Work来包装的从queue队列中取出来的Runnable实现),则以CAS的方式增长计数器,并将新增的work放入work队列blog

在Work的执行过程当中,异常退出,则计数器-1,而且从新生成一个work来继续处理接口

相关文章
相关标签/搜索