摘要: Exchanger 原理 Exchanger(交换者)是一个用于线程间协作的工具类。Exchanger用于进行线程间的数据交换。它提供一个同步点,在这个同步点两个线程可以交换彼此的数据。这两个线程通过exchange方法交换数据, 如果第一个线程先执行exchange方法,它会一直等待第二个线程也执 阅读全文
posted @ 2020-03-12 14:56 习惯沉淀 阅读(2254) 评论(0) 推荐(1) 编辑
摘要: 1. CyclicBarrier的介绍与源码分析 CyclicBarrier 的字面意思是可循环(Cyclic)使用的屏障(Barrier)。它要做的事情是,让一组线程到达一个屏障(也可以叫同步点)时被阻塞,直到最后一个线程到达屏障时,屏障才会开门,所有被屏障拦截的线程才会继续干活。线程进入屏障通过 阅读全文
posted @ 2020-03-12 14:41 习惯沉淀 阅读(651) 评论(0) 推荐(0) 编辑
摘要: 1. CountDownLatch的介绍 CountDownLatch是一个同步工具,它主要用线程执行之间的协作。CountDownLatch 的作用和 Thread.join() 方法类似,让一些线程阻塞直到另一些线程完成一系列操作后才被唤醒。在直接创建线程的年代(Java 5.0 之前),我们可 阅读全文
posted @ 2020-03-12 14:40 习惯沉淀 阅读(320) 评论(0) 推荐(0) 编辑
摘要: 简介 信号量(Semaphore),有时被称为信号灯,是在多线程环境下使用的一种设施, 它负责协调各个线程, 以保证它们能够正确、合理的使用公共资源。 一个计数信号量。从概念上讲,信号量维护了一个许可集。如有必要,在许可可用前会阻塞每一个 acquire(),然后再获取该许可。每个 release( 阅读全文
posted @ 2020-03-12 14:27 习惯沉淀 阅读(711) 评论(0) 推荐(0) 编辑