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

相关推荐
無限進步D1 天前
Java 运行原理
java·开发语言·入门
難釋懷1 天前
安装Canal
java
是苏浙1 天前
JDK17新增特性
java·开发语言
阿里加多1 天前
第 4 章:Go 线程模型——GMP 深度解析
java·开发语言·后端·golang
likerhood1 天前
java中`==`和`.equals()`区别
java·开发语言·python
小小李程序员1 天前
Langchain4j工具调用获取不到ThreadLocal
java·后端·ai
zs宝来了1 天前
AQS详解
java·开发语言·jvm
lulu12165440781 天前
Claude Code Harness架构技术深度解析:生产级AI Agent工程化实践
java·人工智能·python·ai编程
阿里加多1 天前
第 1 章:Go 并发编程概述
java·开发语言·数据库·spring·golang