七叶笔记 » java编程 » 一文详解Java闭锁和栅栏的实现

一文详解Java闭锁和栅栏的实现

题目描述 -闭锁

题目

有3个线程,线程A和线程B并行执行,线程C需要和线程A和B执行完成后才能执行,使用闭锁CountDownLatch实现

解题思路

创建一个类 :Abc Test

CountDownLatch初始化值为2

新增 A B线程,在线程里执行逻辑后,计算-1

countDownLatch.countDown()

新增C线程,等待A,B线程来完成

countDownLatch.await();

执行相关的逻辑

代码详解

AbcTest:

题目二描述 :栅栏 题目

有3个线程,线程A和线程B并发执行,线程C需要A和B执行完成后才能执行。使用删栏CyclicBarrier实现

解题思路

栅栏类似于闭锁,它能阻塞一组线程直到某个事件发生。栅栏与闭锁的关键区别在于,所有的线程

必须同时到达栅栏的位置,才能继续执行。

创建一个类:Abc Test2

CyclicBarrier初始化值为3

新增A,B线程,在线程里执行完逻辑后,栅栏等待,符合三个线程都达到栅栏才往下执行

cyclicBarrier.wait();

新增C线程,先栅栏等待,等A,B线程到达栅栏,就一起往下执行

代码详解

到此这篇关于一文详解Java闭锁和栅栏的实现的文章就介绍到这了,更多相关Java闭锁 栅栏内容请搜索七叶笔记以前的文章或继续浏览下面的相关文章希望大家以后多多支持七叶笔记!

相关文章