
JUC
文章平均质量分 86
JUC
李有乾
劝君须惜少年时
展开
-
ThreadPoolExecutor笔记
线程池主要控制运行线程的数量,将待处理的任务放入等待队列,创建线程执行任务,若超过最大线程池大小,等待其他任务执行完毕,再从队列中取出执行。线程复用,控制最大并发数线程池按以下行为执行任务当线程数小于核心线程数时,创建线程。 当线程数大于等于核心线程数,且任务队列未满时,将任务放入任务队列。 当线程数大于等于核心线程数,且任务队列已满 若线程数小于最大线程数,创建线程 若线程数等于最大线程数,抛出异常,拒绝任务 工具类Executors的API创建方式1、newFix.原创 2021-01-24 20:53:13 · 171 阅读 · 0 评论 -
JUC笔记(synch、ReentrantLock、volatile等)
JMM模型,定义了线程和主内存之间的抽象观念西,主内存存储共享变量,每个线程拥有独立的工作内存存储共享变量的副本多线程下存在问题每次对变量的操作,在没有刷新到主内存前,其他线程不可见,会导致在多线程情况下进行变量的++,可能会出现与预期不同的结果。 重排序 int a = 0; boolean flag = false; void fun1(){ a= 1; flag = true; .原创 2021-01-23 23:51:55 · 224 阅读 · 0 评论 -
AQS独占ReentrantLock源码和共享CountDownLatch源码分析
目录Condition使用demo,实现condition的分组唤醒首先了解一下AQS分析独占锁ReentrantLock加锁源码和condition唤醒源码分析共享锁CountDownLatch源码Condition使用demo,实现condition的分组唤醒import java.util.concurrent.atomic.AtomicInteger;import java.util.concurrent.locks.Condition;import java.ut..原创 2021-01-24 00:11:44 · 174 阅读 · 0 评论