- 博客(5)
- 资源 (6)
- 收藏
- 关注
原创 Exchanger
java.util.concurrent包下Exchanger<T>类可以实现两个线程之间的数据交换,其中参数T是泛型,表示交换的对象类型。 Exchanger<T>只有一个无参构造器,Exchanger()。 有两个重载方法exchange(V x)和exchange(V x, long timeout, Timeunit, unit)。作用是等待...
2018-03-08 23:45:58 238
原创 Semaphore
Semaphore是JDK1.5位于java.util.concurrent包下的一个计数信号量。Semaphore通常用于限制可以访问某些资源的线程数目。它内部维护了一个许可集。在许可可用之前会阻塞每一个acquire(),然后再获取该许可;每个release()可以添加一个许可,从而可能释放一个正在阻塞的获得者。 Semaphore有两个构造器,Semaphore(int pe...
2018-03-07 20:57:25 323
原创 同步之Semaphore信号量
基于Semaphore的特点,如果将信号量初始化为1,使得它在使用时最多只有一个可用的许可,从而可用作一个相互排斥的锁。 下面将使用Semaphore来实现买票的例子,可参考《同步之synchronized关键字》以了解该问题。package com.gk.thread.mutex.semaphore; import java.util.concurrent.Semaphore;...
2018-03-07 20:53:08 358
原创 CyclicBarrier
前篇文章介绍的CountDownLatch可以用来倒计数,适用于一个线程等待多个线程的情况。如果要实现多个线程互相等待的效果,此时CyclicBarrier就比较合适了。 与CountDownLatch一样,CyclicBarrier也是JDK1.5位于java.util.concurrent包下的一个同步辅助类,它允许一组线程互相等待,直到到达某个公共屏障点(common bar...
2018-03-06 20:29:56 312
原创 CountDownLatch
CountDownLatch是JDK1.5位于java.util.concurrent包下的一个同步辅助类,利用它利用实现类似计数器的功能。比如有一个任务A,它要等待其他所有任务执行完毕之后才能执行,这时我们就可以使用CountDownLatch来实现这种功能了。 CountDownLatch只有一个带参的构造器CountDownLatch(int count),其中参数count...
2018-03-05 20:56:10 349
阿里巴巴 Java 开发手册
2019-01-14
Effective Java 第2版_中文版 PDF电子书下载
2018-02-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人