会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
妮蔻
博客园
首页
新随笔
联系
订阅
管理
上一页
1
2
3
4
5
6
7
···
10
下一页
2018年7月8日
Java并发编程笔记之Semaphore信号量源码分析
摘要: JUC 中 Semaphore 的使用与原理分析,Semaphore 也是 Java 中的一个同步器,与 CountDownLatch 和 CycleBarrier 不同在于它内部的计数器是递增的,那么,Semaphore 的内部实现是怎样的呢? Semaphore 信号量也是Java 中一个同步容
阅读全文
posted @ 2018-07-08 17:23 国见比吕
阅读(1019)
评论(0)
推荐(1)
2018年7月7日
Java并发编程笔记之CyclicBarrier源码分析
摘要: JUC 中 回环屏障 CyclicBarrier 的使用与分析,它也可以实现像 CountDownLatch 一样让一组线程全部到达一个状态后再全部同时执行,但是 CyclicBarrier 可以被复用。那么 CyclicBarrier 内部的实现与 CountDownLatch 有何不同那? Co
阅读全文
posted @ 2018-07-07 22:10 国见比吕
阅读(622)
评论(0)
推荐(0)
2018年7月6日
Java并发编程笔记之 CountDownLatch闭锁的源码分析
摘要: JUC 中倒数计数器 CountDownLatch 的使用与原理分析,当需要等待多个线程执行完毕后在做一件事情时候 CountDownLatch 是比调用线程的 join 方法更好的选择,CountDownLatch 与 线程的 join 方法区别是什么? 日常开发中经常会遇到需要在主线程中开启多线
阅读全文
posted @ 2018-07-06 21:33 国见比吕
阅读(2142)
评论(3)
推荐(1)
2018年6月26日
Java并发编程笔记之PriorityBlockingQueue源码分析
摘要: JDK 中无界优先级队列PriorityBlockingQueue 内部使用堆算法保证每次出队都是优先级最高的元素,元素入队时候是如何建堆的,元素出队后如何调整堆的平衡的? PriorityBlockingQueue是带优先级的无界阻塞队列,每次出队都返回优先级最好或者最低的元素,内部是平衡二叉树堆
阅读全文
posted @ 2018-06-26 16:34 国见比吕
阅读(1574)
评论(0)
推荐(1)
2018年6月24日
Java并发编程笔记之ArrayBlockingQueue源码分析
摘要: JDK 中基于数组的阻塞队列 ArrayBlockingQueue 原理剖析,ArrayBlockingQueue 内部如何基于一把独占锁以及对应的两个条件变量实现出入队操作的线程安全? 首先我们先大概的浏览一下ArrayBlockingQueue 的内部构造,如下类图: 如类图所示,可以看到Arr
阅读全文
posted @ 2018-06-24 16:58 国见比吕
阅读(895)
评论(0)
推荐(0)
2018年6月23日
Java并发编程笔记之LinkedBlockingQueue源码探究
摘要: JDK 中基于链表的阻塞队列 LinkedBlockingQueue 原理剖析,LinkedBlockingQueue 内部是如何使用两个独占锁 ReentrantLock 以及对应的条件变量保证多线程先入队出队操作的线程安全?为什么不使用一把锁,使用两把为何能提高并发度? LinkedBlocki
阅读全文
posted @ 2018-06-23 21:45 国见比吕
阅读(3014)
评论(0)
推荐(0)
2018年6月19日
Java并发编程笔记之ConcurrentLinkedQueue源码探究
摘要: JDK 中基于链表的非阻塞无界队列 ConcurrentLinkedQueue 原理剖析,ConcurrentLinkedQueue 内部是如何使用 CAS 非阻塞算法来保证多线程下入队出队操作的线程安全? ConcurrentLinkedQueue是线程安全的无界非阻塞队列,其底层数据结构是使用单
阅读全文
posted @ 2018-06-19 16:46 国见比吕
阅读(5440)
评论(3)
推荐(3)
2018年6月16日
Java并发编程笔记之StampedLock锁源码探究
摘要: StampedLock是JUC并发包里面JDK1.8版本新增的一个锁,该锁提供了三种模式的读写控制,当调用获取锁的系列函数的时候,会返回一个long 型的变量,该变量被称为戳记(stamp),这个戳记代表了锁的状态。 try系列获取锁的函数,当获取锁失败后会返回为0的stamp值。当调用释放锁和转换
阅读全文
posted @ 2018-06-16 23:27 国见比吕
阅读(5838)
评论(1)
推荐(5)
2018年6月14日
Java并发编程笔记之读写锁 ReentrantReadWriteLock 源码分析
摘要: 我们知道在解决线程安全问题上使用 ReentrantLock 就可以,但是 ReentrantLock 是独占锁,同时只有一个线程可以获取该锁,而实际情况下会有写少读多的场景,显然 ReentrantLock 满足不了需求,所以 ReentrantReadWriteLock 应运而生,Reentra
阅读全文
posted @ 2018-06-14 16:43 国见比吕
阅读(1792)
评论(4)
推荐(0)
2018年6月12日
Java并发编程笔记之ReentrantLock源码分析
摘要: ReentrantLock是可重入的独占锁,同时只能有一个线程可以获取该锁,其他获取该锁的线程会被阻塞后放入该锁的AQS阻塞队列里面。 首先我们先看一下ReentrantLock的类图结构,如下图所示: 从类图可以知道,ReentrantLock最终还是使用AQS来实现,并且根据参数决定内部是公平锁
阅读全文
posted @ 2018-06-12 16:04 国见比吕
阅读(862)
评论(1)
推荐(0)
上一页
1
2
3
4
5
6
7
···
10
下一页
公告