Java进阶:多线程Lock管理多个Condition的实践

本文详细介绍了如何使用Java的Lock接口和Condition实现多线程下的顺序执行任务A、B、C。通过一个具体的需求场景,展示了如何设置条件变量,确保线程按特定顺序执行并正确唤醒。在实践中,创建了MyData类,包含doJobA、doJobB和doJobC方法,每个方法根据flag值判断并调整状态,以保证任务的顺序执行。总结指出,相比synchronized,Lock的Condition提供更精确的线程唤醒控制,增加了灵活性。
摘要由CSDN通过智能技术生成

概述

本篇主要讲解Lock管理多个Condition的情况,对Condition基础还不了解的童鞋,请先看下这篇文章:ReentrantLock和Condition基本使用

通过一项需求来实践

假设,当前当前有3个任务A、B、C需要按顺序反复地执行。

  • A执行完了执行B
  • B执行完了执行C
  • C执行完了重新执行A

用一张图简单画一下就是这样:
在这里插入图片描述

Condition的等待与唤醒正好可以实现上面这项需求

代码实现

为了更好地体现控制逻辑,这里代码不做封装,会写得更清晰一点

首先,创建一个资源类 MyData

static 
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

°Fuhb

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值