java 多线程源码分析
澹泊csdn
这个作者很懒,什么都没留下…
展开
-
JDK1.8 StampedLock源码解析
1 如果读取执行情况很多,写入很少的情况下,使用 ReentrantReadWriteLock 可能会使写入线程遭遇饥饿(Starvation)问题,也就是写入线程迟迟无法竞争到锁定而一直处于等待状态。 2 StampedLock控制锁有三种模式(写,读,乐观读),一个StampedLock状态是由版本和模式两个部分组成,锁获取方法返回一个数字作为票据stamp,它用相应的锁状态表示并控制访问,数字0表示没有写锁被授原创 2017-08-04 20:44:29 · 3174 阅读 · 0 评论 -
ReentrantReadWriteLock类源代码分析
1、非公平锁(吞吐率比公平锁高) 第一个尝试获取锁的线程都可以获得锁资源 当写锁时,该线程的读锁和写锁可以获得锁,其他线程的写锁和读锁都得不到锁资源,进入队列等待。 读锁时,所有读锁可以得到锁,所有写锁进入队列等待。 2、公平锁 线程将会以队列的顺序获取锁。当当前线程释放锁后,等待时间最长的写锁线程就会被分配写锁;或者有一组读线程组等待时间比写线程长,那么这组读线程组将会被分配读锁。 3、支持锁重入,即同原创 2017-07-28 20:18:30 · 478 阅读 · 0 评论 -
List Set Map简单理解
List Set Map简单理解原创 2017-08-26 17:09:38 · 523 阅读 · 0 评论 -
AbstractQueuedSynchronizer类源码解析
AbstractQueuedSynchronizer类原创 2017-09-03 11:00:53 · 362 阅读 · 0 评论