多线程
54454hhj
这个作者很懒,什么都没留下…
展开
-
Lock和Condition
1、jdk1.5之前用synchornized和voatile来控制共享对象的并发访问,jdk5.0提供了ReentrantLock。2、Lock和ReentrantLock: Lock接口里定义了一些抽象的锁操作,有无条件、可轮询、定时、可中断的锁获取操作,ReentrantLock实现了Lock接口,获得ReetrantLock的锁与进入synchronized代码块有相同的内存...原创 2013-04-18 17:55:26 · 205 阅读 · 0 评论 -
CountDownLatch使用
Java的concurrent包里面的CountDownLatch其实可以把它看作一个计数器,只不过这个计数器的操作是原子操作,同时只能有一个线程去操作这个计数器,也就是同时只能有一个线程去减这个计数器里面的值。 你可以向CountDownLatch对象设置一个初始的数字作为计数值,任何调用这个对象上的await()方法都会阻塞,直到这个计数器的计数值被其他的线程减为...原创 2013-05-06 19:23:45 · 78 阅读 · 0 评论 -
CyclicBarrier使用
CyclicBarrier,它维护一个计数器,与CountDownLatch不同的是,等待这个CyclicBarrier的线程必须等到计数器到达 某个值时,才可以继续。CyclicBarrier就像它名字的意思一样,可看成是个障碍,所有的线程必须到齐后才能一起通过这个障碍。package com.supr;import java.util.concurrent.Brok...原创 2013-05-07 15:08:31 · 55 阅读 · 0 评论 -
Semaphore使用
package com.supr;import java.util.concurrent.Semaphore;public class Four { public static void main(String[] args) { final Semaphore s = new Semaphore(3); for (int i = 0; i < 20...原创 2013-05-07 16:01:44 · 66 阅读 · 0 评论