2023年7月10日
摘要: Java中提供了两种锁:synchronized和lock锁,ReentrantLock属于lock锁,是互斥锁,可以让多线程执行期间只有一个线程在执行指定一段代码。 二、ReentrantLock的lock方法: 2.1简单分析 进入lock方法后,发现内部调用了sync.lock()方法,去找方 阅读全文
posted @ 2023-07-10 18:29 啥123 阅读(23) 评论(0) 推荐(0) 编辑
摘要: 执行任务的流程,并且加入了中断的判断 //执行任务 final void runWorker(ThreadPoolExecutor.Worker w) { // 拿到当前的工作线程 Thread wt = Thread.currentThread(); // 拿到Worker对象中封装的任务 Run 阅读全文
posted @ 2023-07-10 11:44 啥123 阅读(23) 评论(0) 推荐(0) 编辑
摘要: private final class Worker extends AbstractQueuedSynchronizer //线程中断 implements Runnable //存储需要执行的任务 { private static final long serialVersionUID = 61 阅读全文
posted @ 2023-07-10 10:41 啥123 阅读(6) 评论(0) 推荐(0) 编辑
摘要: 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 阅读(73) 评论(0) 推荐(0) 编辑