Java
232 篇笔记
- 6.31 非公平ReadWriteLockhistorical
1. 是什么 无论队列前面是否有人排队等待锁,我直接去抢 2. 怎么使用 3. 源码分析 3.1. uml 3.2. 构造方法 - ReentrantReadWriteLock - ReentrantReadWriteLock.ReadLock - ReentrantReadWriteLock.Wr
- 6.32 非公平信号量historical
1. 是什么 限流,使用的非公平策略 2. 使用 3. 原理分析 3.1. 构造方法 3.1.1. 非公平Sync - NonfairSync - Sync 3.2. acquire 3.2.1. 调用AQS加共享锁 - AQS acquireSharedInterruptibly 3.2.1.1.
- 6.33 Thread.sleephistorical
1. sleep结束后什么时候唤醒 假设某个线程在 2020-01-09 22:47:54 运行上面这段代码,那么他会在 2020-01-09 22:47:55 立马往下执行么? - 答案 不一定,这段代码的意思只是在 2020-01-09 22:47:55 有机会去抢占CPU,而不是获得了CPU并
- 6.34 非公平锁historical
所谓公平锁,就是只要锁已经被释放了,那么不管是先到的还是后到的,都可以去抢占锁 1. 如何使用 2. 实现原理 2.1. 构造方法 2.2. 加锁 2.2.1. 使用非公平锁加锁 - NonfairSync lock方法 2.2.2. 通过AQS加锁 - AQS.acquire方法 由于Nonfai
- 6.35 LinkedBlockingQueuehistorical
1. 是什么 使用单向链表实现的有界的阻塞队列 读读、写写相互阻塞,读写不相互阻塞 吞吐量比ArrayBlockingQueue高 2. 如何使用 3. 源码分析 3.1. 构造方法 3.1.1. 底层使用单向链表+Lock+Condition实现 3.1.2. Node 结构如下图: 3.2. p
- 6.36 RejectedExecutionHandlerhistorical
1. RejectedExecutionHandler是什么 corePoolSize满了,blockingQueue也满了,maxPoolSize也满了,那么新的任务该怎么处理,这就看RejectedExecutionHandler 2. 分类 2.1. CallerRunsPolicy 处理策略
- 6.38 公平ReadWriteLockhistorical
1. 是什么 无论队列前面是否有人排队等待锁,我直接去抢 2. 怎么使用 3. 源码分析 3.1. uml 3.2. 构造方法 - ReentrantReadWriteLock - ReentrantReadWriteLock.ReadLock - ReentrantReadWriteLock.Wr
- 6.39 公平信号量historical
1. 是什么 限流,使用的公平策略 2. 使用 3. 原理分析 3.1. 构造方法 3.1.1. 公平Sync - FairSync - Sync 3.2. acquire 3.2.1. 调用AQS加共享锁 - AQS acquireSharedInterruptibly 3.2.1.1. 尝试加锁
- 6.40 线程状态historical
1. 线程状态枚举类 2. 状态流转 3. 参考 - Lifecycle and States of a Thread in Java \- GeeksforGeeks