- 博客(3)
- 收藏
- 关注
原创 非阻塞同步
非阻塞的栈//利用atomicReference实现非阻塞栈public class ConcurrentStack<E> { //栈指针 AtomicReference<Node<E>> top = new AtomicReference<Node<E>>(); public void put(E item){ Node<E> newHead = new
2017-01-06 15:21:56 218
原创 java多线程编程-构建自定义的同步工具
一、条件队列 1. 标准形式:void stateDependentMethod() throws InterruptedException{ synchronized(lock) { //首先要持有锁 while(!conditionPredicate()) //在唤醒后需再次确认,以防止在唤醒和获取锁之间的时间状态再次改变 lock.w
2017-01-03 17:06:18 237
原创 线程活跃性危险
发生死锁的原因: 1.1 锁顺序死锁:synchronized(left){ synchronized(right){ ... }}synchronized(right){ synchronized(left){ ... }}1.2 动态的锁顺序死锁 (获取锁的顺序由参数决定):func(A,B){ synchronized(A){
2017-01-03 15:25:42 287
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人