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

相关推荐
enjoy嚣士8 分钟前
Java 之 实现C++库函数等价函数遇到的问题
java·开发语言·c++
毕设源码-郭学长13 分钟前
【开题答辩全过程】以 基于java的停车管理系统的设计与实为例,包含答辩的问题和答案
java·开发语言
流云细水24 分钟前
Spec实战:需求编辑与需求评审
java·人工智能
柴郡猫乐园26 分钟前
JDK中一个单例模式的实现
java·开发语言·单例模式
星空彼岸00726 分钟前
SA-Token在SpringBoot中的实战指南
java·spring boot·后端
闻哥31 分钟前
ConcurrentHashMap 1.7 源码深度解析:分段锁的设计与实现
java·开发语言·jvm·spring boot·面试·jdk·hash
SmartBrain1 小时前
FastAPI 与 Langchain、Coze、Dify 技术深度对比分析
java·架构·fastapi
FunW1n1 小时前
tmf.js Hook Shark框架相关疑问归纳总结报告
java·前端·javascript
琢磨先生David2 小时前
Java算法每日一题
java·开发语言·算法
重生之后端学习2 小时前
114. 二叉树展开为链表
java·数据结构·算法·链表·职场和发展·深度优先