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

相关推荐
丸辣,我代码炸了16 小时前
如何手搓序列化器(以java为例)
java·开发语言·kafka
快乐柠檬不快乐16 小时前
基于Java+SpringBoot+SSM攻防靶场实验室平台
java·开发语言·spring boot
爱丽_16 小时前
Spring Boot 启动链路:自动装配、条件注解与排错方法论
java·spring boot·后端
weixin_4250230016 小时前
Spring Boot 2.7+JDK8+WebSocket对接阿里云百炼Qwen3.5-Plus 实现流式对话+思考过程实时展示
java·spring boot·websocket·ai编程
快乐柠檬不快乐16 小时前
IDEA报错内存溢出解决(java.lang.OutOfMemoryError)
java·ide·intellij-idea
.柒宇.17 小时前
力扣hot 100之和为 K 的子数组(Java版)
java·算法·leetcode
%Leo17 小时前
macos idea 插件搜索不到
java·intellij-idea
苏渡苇17 小时前
枚举的高级用法——用枚举实现策略模式和状态机
java·单例模式·策略模式·枚举·状态机·enum
鱼鳞_17 小时前
Java学习笔记_Day19
java·笔记·学习
曹牧17 小时前
Java:驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立连接
java·开发语言·ssl