ReentrantLock中的Condition的用法

其实Condition或者说wait和notify/notifyAll,我们是在阻塞队列中经常使用。

1.例子1

生产者消费者模式嘛,一个线程生成数据,有了数据后,通知其它线程取。

也就是await方法,是位于lock之间。

复制代码
lock.lock()
while(queue.empty()){
    condition.await();
}
lock.unlock()

2.例子2

在rpc中,我们也可以用这个await来搞。 当然了还有CountDownLatch或者CompletableFuture也有提供超时的方法。

相关推荐
想搞艺术的程序员8 分钟前
Java Survivor区学习笔记
java·笔记·学习·垃圾回收
毕设源码-赖学姐10 分钟前
【开题答辩全过程】以 基于SSM在线考试系统的设计与实现为例,包含答辩的问题和答案
java
吾诺16 分钟前
Java进阶,时间与日期,包装类,正则表达式
java·mysql·正则表达式
ole ' ola17 分钟前
lambda表达式
java·前端·jvm
蜡台19 分钟前
Flutter 安装配置
android·java·flutter·环境变量
空空潍21 分钟前
保姆级实战教程:Maven私服Nexus搭建
java·maven·nexus
Jinkxs24 分钟前
Java 部署:Jenkins Pipeline 构建 Java 项目(自动化)
java·spring boot
Jinkxs28 分钟前
Java 部署:滚动更新(K8s RollingUpdate 策略)
java·开发语言·kubernetes
a8a30229 分钟前
Spring Boot 3.3.4 升级导致 Logback 之前回滚策略配置不兼容问题解决
java·spring boot·logback
jfqqqqq34 分钟前
win11下intelliJ idea的shift + F6无效
java·ide·intellij-idea