Java 线程池系列-第三篇
第三篇我们要来讲下 Worker 这个“打工人”,线程池里实际在干活的同学 Worker 实现了 Runnable 接口,所以在前面介绍的 addWorker 中 线程启动其实就调用了下面的 run 方法,而 run 方法则调用了内部的 runWorker 方法 介绍下这个 r…
第三篇我们要来讲下 Worker 这个“打工人”,线程池里实际在干活的同学 Worker 实现了 Runnable 接口,所以在前面介绍的 addWorker 中 线程启动其实就调用了下面的 run 方法,而 run 方法则调用了内部的 runWorker 方法 介绍下这个 r…
介绍了线程池的目的和实现概述,以及如何初始化的,我们就来开始看看线程池最重要的执行过程 老规矩,还是先把注释翻译下,这个对理解逻辑其实非常重要,后面可以循着注释的逻辑来看代码 第一步,如果是少于核心线程数的线程正在运行,那么尝试去开启一个新线程,并把提交的命令 command…
这一篇我们继续聊线程池,一般线程池会介绍我们的参数,我先不一样一些 我们先来翻译一下 通过前面的简单翻译我们就能大致略窥得线程池配置全貌,继续看一个构造方法 这个构造方法就主要配置了 corePoolSize 核心线程数,maximumPoolSize 最大线程数, keepA…
Java 线程池是 Java 并发体系里的重要组成部分,不过说起线程池一般都是几个参数,以及参数的含义和逻辑,为了更适合刚开始学习的同学或者说有一些会对这么个习惯性的概括讲法有点疑惑的,我们就从零开始,从最基础的开始看起,先来看下里面用来判断线程池状态和线程数量的部分 这里我们…
Given the roots of two binary trees root and subRoot, return true if there is a subtree of root with the same structure and node values of…