java thread
pengyuanyuankuang
这个作者很懒,什么都没留下…
展开
-
CyclicBarrier 、CountDownLatch
CyclicBarrier 一个同步辅助类,它允许一组线程互相等待,直到到达某个公共屏障点 (common barrier point)。在涉及一组固定大小的线程(这个很重要,在初始化时要指定线程的数量)的程序中,这些线程必须不时地互相等待,此时 CyclicBarrier 很有用。因为该 barrier 在释放等待线程后可以重用,所以称它为循环 的 barrier。CyclicB...原创 2013-03-21 10:44:23 · 95 阅读 · 0 评论 -
Exchanger
Exchanger 多个线程可以再一个点成对地交换数据,线程通过exchange方法将一个对象实体用于交换,将自己的交换数据给对方,并从对方获取交换数据。 Exchanger 可以看做一个双向的SynchronousQueue。 Exchanger可以用于遗传算法和管道的设计实现。 ...原创 2013-03-21 12:59:59 · 67 阅读 · 0 评论 -
[转]java.util.concurrent.atomic随笔及volatile语义
转自:http://ruijunsuo.blog.163.com/blog/static/400596322012122127820/ 一个原子操作(atomic operation)是个不能分割的整体,没有其它线程(thread)能够中断或检查正在原子操作中的变量。一个原子(atomic)类型就是一个原子操作可用的类型,它可以在基本上没有锁(lock)的情况下做到线程安全(thr...原创 2013-03-21 15:09:16 · 68 阅读 · 0 评论 -
ReentrantLock 和 conditions
一个可重入的互斥锁 Lock,与使用 synchronized 的一些基本行为和语义类似,但功能更强大。当锁没有被另一个线程所拥有时,调用 lock 的线程将成功获取该锁并返回。如果当前线程已经拥有该锁,此方法将立即返回。可以使用 isHeldByCurrentThread() 和 getHoldCount() 方法来检查锁的占用情况。 此类的构造方法接受一个可选的公平 参数。当设置...原创 2013-03-22 09:53:47 · 56 阅读 · 0 评论 -
ReentrantReadWriteLock
公平性 非公平锁(默认) 这个和独占锁的非公平性一样,由于读线程之间没有锁竞争,所以读操作没有公平性和非公平性,写操作时,由于写操作可能立即获取到锁,所以会推迟一个或多个读操作或者写操作。因此非公平锁的吞吐量要高于公平锁。 公平锁 利用AQS的CLH队列,释放当前保持的锁(读锁或者写锁)时,优先为等待时间最长的那个写线程分配写入锁,当前前提是写线程的等待时间要比所有读线程的等待时间要长。...原创 2013-03-22 10:43:25 · 87 阅读 · 0 评论