07 2023 档案
ReentrantLock的介绍
摘要:Java中提供了两种锁:synchronized和lock锁,ReentrantLock属于lock锁,是互斥锁,可以让多线程执行期间只有一个线程在执行指定一段代码。 二、ReentrantLock的lock方法: 2.1简单分析 进入lock方法后,发现内部调用了sync.lock()方法,去找方 阅读全文
posted @ 2023-07-10 18:29 啥123 阅读(67) 评论(0) 推荐(0)
runWorker方法
摘要:执行任务的流程,并且加入了中断的判断 //执行任务 final void runWorker(ThreadPoolExecutor.Worker w) { // 拿到当前的工作线程 Thread wt = Thread.currentThread(); // 拿到Worker对象中封装的任务 Run 阅读全文
posted @ 2023-07-10 11:44 啥123 阅读(50) 评论(0) 推荐(0)
Worker对象
摘要:private final class Worker extends AbstractQueuedSynchronizer //线程中断 implements Runnable //存储需要执行的任务 { private static final long serialVersionUID = 61 阅读全文
posted @ 2023-07-10 10:41 啥123 阅读(15) 评论(0) 推荐(0)
线程池addWorker执行流程(添加工作线程)
摘要:1 //添加工作线程 2 private boolean addWorker(Runnable firstTask, boolean core) { 3 // 对线程池状态的判断以及对工作线程数量的判断 4 // 外层for循环的标识 5 retry: 6 for (;;) { 7 // 获取ctl 阅读全文
posted @ 2023-07-10 10:05 啥123 阅读(113) 评论(0) 推荐(0)
线程池excute方法执行流程
摘要:1 // 线程池execute方法执行流程 2 public void execute(Runnable command) { 3 // 非空判断,判断提交的任务是否为空 4 if (command == null) 5 throw new NullPointerException(); 6 // 阅读全文
posted @ 2023-07-09 18:20 啥123 阅读(121) 评论(0) 推荐(0)