摘要: ThreadPoolExecutor public class ThreadPoolExecutor extends AbstractExecutorService { //低29位表示线程池的数量,高3位表示线程池状态 private final AtomicInteger ctl = new A 阅读全文
posted @ 2020-03-28 19:50 平淡454 阅读(328) 评论(0) 推荐(0) 编辑
摘要: "CopyOnWriteArrayList" "ConcurrentHashMap" "ArrayBlockingQueue" CopyOnWriteArrayList 构造器有两种:无参和有参 添加方法: get方法直接按照索引查询数组即可。 "返回顶部" 阅读全文
posted @ 2020-03-28 15:41 平淡454 阅读(113) 评论(0) 推荐(0) 编辑
摘要: CountDownLatch闭锁 CyclicBarrier栅栏 Semaphore信号量 阅读全文
posted @ 2020-03-28 14:37 平淡454 阅读(79) 评论(0) 推荐(0) 编辑
摘要: AQS ReentrantLock ReentrantReadWriteLock AQS 全名叫AbstractQueuedSynchronizer。 public abstract class AbstractQueuedSynchronizer extends AbstractOwnableSy 阅读全文
posted @ 2020-03-28 14:33 平淡454 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 1. 基本类型: "AtomicInteger" , AtomicLong, AtomicBoolean ; 2. 数组类型: AtomicIntegerArray, AtomicLongArray, AtomicReferenceArray ; 3. 引用类型: AtomicReference, 阅读全文
posted @ 2020-03-28 11:27 平淡454 阅读(110) 评论(0) 推荐(0) 编辑
摘要: Synchronize实现原理 java对象头中存在一个指向monitor对象的指针。每个java对象在内存中都对应一个monitor对象。monitor对象就是用来存放对象的锁信息的。 monitor对象重要属性: count:用来存放当前对象被获取锁的次数,0表示对象没有被线程占有。 owner 阅读全文
posted @ 2020-03-28 10:12 平淡454 阅读(518) 评论(0) 推荐(0) 编辑
摘要: [TOC] 阻塞线程关键字 线程有几种状态? 新建状态、就绪状态、运行状态、阻塞状态、死亡状态 使线程进入阻塞状态的几种方式? wait、yield、sleep、join、interrupt wait 使当前线程让出锁,进入阻塞状态,直到超时或者notify,线程进入就绪状态 关于wait有两点要注 阅读全文
posted @ 2020-03-28 10:11 平淡454 阅读(161) 评论(0) 推荐(0) 编辑