![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java concurrent
aliuconga
这个作者很懒,什么都没留下…
展开
-
AbstractQueuedSynchronizer的介绍
简介:在AQS中,实现了一个FIFO的队列,主要通过waitStatus来控制队列单元的状态(park和unpark)。AQS实现了共享锁和排它锁的算法。 Node { int waitStatus; Node prev; Node next; Node nextWaiter; Thread thread;} waitSta...原创 2013-12-06 10:35:51 · 82 阅读 · 0 评论 -
ReentrantLock介绍
java.util.concurrent.locks.ReentrantLock 介绍: reentrant 是一个排它锁,和Synchronized有相同的作用,除此之外,还提了其他功能。 ReentrantLock 通过调用lock方法,使线程获取锁,多线程同时获取锁时,只有一个线程可以得到此锁,其他的线程将处于阻塞状态。如果某个线程已经获得锁,再次请求获...原创 2013-12-06 14:53:55 · 176 阅读 · 0 评论 -
Condition介绍
java.util.concurrent.locks.Condition介绍: Condition其实类似Object的Monitor模型(wait,notify,notifyAll),和Object的monitor需要在sychronized里一样,Condition需要和Lock搭档。 Condition可以通过Lock.newCondition()方法获取。某...原创 2013-12-06 22:21:51 · 130 阅读 · 0 评论 -
CountDownLatch介绍
java.util.concurrent.CountDownLatch 介绍: CountDownLatch是一个开闭锁,允许多个线程同时阻塞在一个点,然后通过信号量来同时释放线程。就好像赛马比赛:所有的马(Thread)都等着栅栏(Singal)放开那一刻,放开后,奋力前行,到达终点(CPU或者其他资源)。 CountDownLatch初始化方法为:CountDo...原创 2013-12-07 15:27:12 · 100 阅读 · 0 评论 -
Semaphore介绍
java.util.concurrent.Semaphore 介绍: Semaphore是一个信号灯模型,简单理解为N进N出的模型。每次调用acquire时,如果已经有N个线程进入管道,则会阻塞。每次线程离开管道时,通过release释放掉。当Semaphore的count为1时,它的语义就差不多是个互斥锁了,一进一出。 //JDK中的 例子,通过一个...原创 2013-12-07 15:49:37 · 118 阅读 · 0 评论 -
FutureTask介绍
java.util.concurrent.FutureTask<V> 介绍:FutureTask实现了RunnableFuture接口,具备了Runnable和Future的所有特性。 Future提供了一种获得异步线程运行结果的机制。可以通过调用get方法得到结果,如果线程还未结束,会阻塞当前线程直至结果返回或中断发生。Future一般和Callable以及Ex...原创 2013-12-07 18:14:49 · 110 阅读 · 0 评论