Java 线程池系列-实战篇
线程池在实际使用过程中,有时候在理解比较偏理论的时候会出现一些判断错误,这里我们就来看一个实际的案例 MyArrayBlockingQueue 是我复制的 ArrayBlockingQueue 加了点日志,可以认为就是一样的,这种情况下 执行过程是怎么样的呢, 队列长度是 2…
线程池在实际使用过程中,有时候在理解比较偏理论的时候会出现一些判断错误,这里我们就来看一个实际的案例 MyArrayBlockingQueue 是我复制的 ArrayBlockingQueue 加了点日志,可以认为就是一样的,这种情况下 执行过程是怎么样的呢, 队列长度是 2…
https 我原本的理解来自于几个概念。第一个是非对称加密。也就是公钥可以公开在网上,然后用公钥加密,由私有的私钥进行解密,然后就对 https 有了初步的偏颇的概念,就是浏览器用公钥进行加密,服务器端用私钥进行解密,这里再仔细想想会延伸出来几个问题,也是逐步完善我的后续理解
这一篇主要补充两个内容,第一部分就是获取任务的逻辑 首先是状态判断,如果是停止了,SHUTDOWN或更大的了,就需要减小工作线程数量 并返回 null,使得工作线程 worker 退出,然后再判断线程数量和超时,同样如果超过了就会返回 null 然后就是去阻塞队列里获取任务,这…
第三篇我们要来讲下 Worker 这个“打工人”,线程池里实际在干活的同学 Worker 实现了 Runnable 接口,所以在前面介绍的 addWorker 中 线程启动其实就调用了下面的 run 方法,而 run 方法则调用了内部的 runWorker 方法 介绍下这个 r…
介绍了线程池的目的和实现概述,以及如何初始化的,我们就来开始看看线程池最重要的执行过程 老规矩,还是先把注释翻译下,这个对理解逻辑其实非常重要,后面可以循着注释的逻辑来看代码 第一步,如果是少于核心线程数的线程正在运行,那么尝试去开启一个新线程,并把提交的命令 command…