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

相关推荐
开心香辣派小星12 小时前
23种设计模式-15解释器模式
java·设计模式·解释器模式
Halo_tjn13 小时前
虚拟机相关实验概述
java·开发语言·windows·计算机
摆烂z13 小时前
Docker与Jib(maven插件版)实战
java
RainbowSea13 小时前
从 Spring Boot 2.x 到 3.5.x + JDK21:一次完整的生产环境迁移实战
java·spring boot·后端
笨手笨脚の13 小时前
Spring Core常见错误及解决方案
java·后端·spring
奶油松果13 小时前
Springboot自动装配 - redis和redission
java·spring boot·redis
霍夫曼14 小时前
UTC时间与本地时间转换问题
java·linux·服务器·前端·javascript
VX:Fegn089514 小时前
计算机毕业设计|基于Java人力资源管理系统(源码+数据库+文档)
java·开发语言·数据库·vue.js·spring boot·后端·课程设计
荔枝hu14 小时前
springboot和shiro组合引入SseEmitter的一些坑
java·spring boot·后端·sseeitter
老华带你飞14 小时前
健身房|基于springboot + vue健身房管理系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端