![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
多线程
半笙彷徨
追求自我,超越自我
展开
-
java.util.concurrent|Semaphore使用
Semaphore是java.util.concurrent中的一个类,翻译成中文是“信号量”,它是一个计数器,使用场景基本上多线程访问共享资源,保护共享资源在某个时间只能被一个线程使用。Semaphore原理Semaphore相当于计数器,它可以增加,也可以减少,在初始化对象的时候,可以指定permits(信号量)数目,比如5,那么,Semaphore最多减少到0,最多增加不超过5。 显然,Se原创 2017-03-11 21:12:41 · 525 阅读 · 0 评论 -
java.util.concurrent|CountDownLatch使用
CountDownLatch能实现让一个线程等待其他线程执行完成后再继续执行的功能。 如下使用CountDownLatch实现服务检测功能,ApplicationStartupUtil调用服务的检测方法,使用CountDownLatch等待检测完成,再返回检测结果。BaseHealthChecker.java/** * 外部服务心跳检测抽象类 * * @Auothor wzx * @Dat原创 2017-03-11 21:52:45 · 387 阅读 · 0 评论 -
使用wait和notifyAll实现生产者消费者模型
wait和notifyAll是JDK中Object类的两个方法,主要用来线程间通讯,最经典的应用场景就是【生产者-消费者】,下面给出简单示例。/** * @Auothor wzx * @Date 2017/5/7 0007 */ public class ProducerConsumer { public static void main(String[] args) {原创 2017-05-07 23:10:00 · 357 阅读 · 0 评论 -
使用ReentrantLock和Condition实现生产者消费者模型
使用ReentrantLock和Condition实现【生产者-消费者】。/** * @author wzx * @time 2017/5/8 */ public class ProducerConsumerSolutionUsingLock { public static void main(String[] args) throws InterruptedException {原创 2017-05-08 18:27:41 · 1828 阅读 · 0 评论