源码分析,如何快速使用ThreadPoolExecutor

原子型ctl变量用了操控状况,它又两个作用,记录worker数和运行状况(低29位为worker数、高三位为运行状况)。它的初始值为RUNNING(111 00000000000000000000000000000),切记这个一个负数,最大值是0,所以有个isRunning方法判别是否在运行是:ctl.get() < SHUTDOWN(0)。线程池把创建的作业线程封装成worker类,它完成了Runnable接口的一起,也承继了AQS(行列同步器),目的是多线程调用线程池执行任务时,确保只要一个线程获取到当前线程的锁。

猜你喜欢

转载自www.cnblogs.com/selang/p/12709973.html