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也有提供超时的方法。

相关推荐
东坡白菜3 小时前
windows下使用Trae启动java项目遇到的乱码问题
java
SQL-First布道者3 小时前
⚡Spring JDBC 完整体系 · 第 10 集 · 手搓 `BaseCondition`
java·spring boot·后端·spring·mybatis·spring jdbc
珍珠先生3 小时前
第9章 JDK 11 新特性:var 与便捷新 API
java
hoho_124 小时前
麒麟V10升级nginx最新版本到1.31.4
java·服务器·nginx
冬夜戏雪4 小时前
笔试的Scanner in Scanner out
java·开发语言
南城以南溫暖如初1474 小时前
社交裂变商城系统设计与实战开发指南
java·spring boot·mysql·vue·mybatis
Zane1994124 小时前
HashSet、TreeSet、LinkedHashSet:底层都是“套壳“
java·开发语言
xiaoqiMikko4 小时前
Spring 官方给 5.3 线开了三个修复版,Maven Central 上一个都没有
java·spring boot
南城以南溫暖如初1474 小时前
分享返现商城系统开发实战:技术架构与运营经验指南
java·spring boot·mysql·架构·vue·mybatis
vipxieliang5 小时前
Java切面编程(AOP)详解:从核心概念到实战应用
java·spring boot