设为首页 加入收藏

TOP

12分钟从Executor自顶向下彻底搞懂线程池(三)
2023-09-09 10:25:36 】 浏览:110
Tags:12分 钟从 Executor 向下彻 程池
p;               break retry;                   //CAS失败 重新读取状态 内循环                   c = ctl.get(); // Re-read ctl                   if (runStateOf(c) != rs)                       continue retry;                   // else CAS failed due to workerCount change; retry inner loop               }           }             //来到这里说明已经自增工作线程数量 准备创建线程           boolean workerStarted = false;           boolean workerAdded = false;           Worker w = null;           try {               //创建worker 通过线程工厂创建线程               w = new Worker(firstTask);               final Thread t = w.thread;               if (t != null) {                   //全局锁                   final ReentrantLock mainLock = this.mainLock;                   mainLock.lock();                   try {                       // Recheck while holding lock.                       // Back out on ThreadFactory failure or if                       // shut down before lock acquired.                       int rs = runStateOf(ctl.get());                         if (rs < SHUTDOWN ||                           (rs == SHUTDOWN && firstTask == null)) {                           if (t.isAlive()) // precheck that t is startable                               throw new IllegalThreadStateException();                           //添加线程                           workers.add(w);                           int s = workers.size();                           if (s > largestPoolSize)                               largestPoolSize = s;                           //标记线程添加完                           workerAdded = true;                       }                   } finally {   &nbs
首页 上一页 1 2 3 4 5 6 7 下一页 尾页 3/9/9
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇适配器模式:如何让不兼容的接口.. 下一篇原型模式和深拷贝,浅拷贝

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目