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

相关推荐
程序员梅雨8 分钟前
【从零开始学习数据仓库 | 第三篇】: Flume——数据采集基石
java·大数据·数据仓库·后端·学习·flume
acd1200917 分钟前
域名解析缓存带来的隐性故障,很多排查都漏掉了这一层
java·运维·nginx
wuminyu19 分钟前
JVM执行引擎学习总结:热点字节码编译成本地机器码
java·linux·c语言·jvm·c++
真上帝的左手19 分钟前
2. 编程语言-Java-Spring Boot-JAR
java·spring boot·jar
Jack_hsfs25 分钟前
第6章Spring 管理的是对象,还是对象的说明书?
java·后端·spring
十二同学啊41 分钟前
Python 工程化详解:项目结构、依赖管理、代码质量、测试与部署
java·开发语言·python
YIN_尹1 小时前
【git原理与使用】git基本操作及底层原理(一)
java·git·elasticsearch
程序员飞哥1 小时前
AI 编程额度怎么用才不浪费?
java·前端·后端
yh弓长1 小时前
Spring MVC 的请求链路
java·spring·mvc