- 博客(5)
- 收藏
- 关注
原创 实战Java高并发程序设计之LockSupport
LockSupport简介:LockSupport是一个非常方便实用的线程阻塞工具,它可以在线程任意位置让线程阻塞.和Thread.suspend()相比,它弥补了由于resume()在前发生,导致线程无法继续执行的情况.和Object.wait()相比,它不需要先获得对象的锁,也不会抛出中断异常.LockSupport是用于创建锁和其他同步类的基本线程阻塞原语.LockSuppo
2017-06-20 21:58:34 318
原创 实战Java高并发程序设计之CyclicBarrier
CyclicBarrier是另一种多线程并发控制使用工具.和CountDownLatch非常的相似,它也可以实现线程间的计数等待,但它的功能比CountDownLatch更加复杂且强大.CyclicBarrier可以理解成循环栅栏.栅栏就是一种阻碍物.这里是用来阻止线程继续执行,要求线程在栅栏处等待.前面Cyclic意为循环,也就是说这个计数器可以反复使用.CyclicBa
2017-06-19 22:19:12 317
原创 实战Java高并发程序设计之CountDownLatch
CountDownLatch:一个倒数计时器.这个工具类通常用来控制线程等待,它可以让某一个线程等待直到计时结束,再开始执行.CountDownLatch允许一个或多个线程等待直到在其他线程中执行的一组操作如上图所示:主线程会在零界线上等待,检查任务会分别执行,当所有的任务全部都到达零界点以后,主线程才能继续往下执行基本用饭:CountDownLatch是一
2017-06-17 21:42:32 941
原创 实战Java高并发程序设计之ReadWriteLock
ReadWriteLock维持着一对关联的锁.一个仅仅为读操作,一个仅仅为写操作. 只要没有写操作,读锁不是互斥的.然而写锁是互斥的所有ReadWriteLock实现必须保证writeLock操作的内存同步效果对于相关的readLock而言也是一样的. 也就是说,一个线程成功获取读锁定将会看到在之前释放的写锁定所做的所有更新.读写分离锁可以有效的帮助减少锁竞争,以提升性能。用锁
2017-06-11 20:05:51 301
原创 实战Java高并发程序设计之Semaphoer
信号量为多线程协作提供了更强大的控制方法.广义上说,信号量是对锁的扩展.无论是内部锁synchronized还是重入锁ReentranLock,一次都只允许一个线程访问同一个资源,而信号量却可以指定多个线程,同时访问某一个资源. 概念上,一个信号量维持着大量的许可. 每个acquire请求都会阻塞直到一个permit可用为止,并且然后拥有这个许可. 每个release请求都可能会释放一个per
2017-06-11 17:14:56 294
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人