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

相关推荐
文丑颜不良啊2 小时前
LeetCode2761~2780题目解析
java·leetcode
IT枫斗者枫哥3 小时前
子线程断言失败,JUnit 为什么还显示通过?
java·后端
考虑考虑5 小时前
JDK27中的Set.ofLazy
java·后端·java ee
文丑颜不良啊5 小时前
LeetCode2841~2860题目解析
java·leetcode
小南家的青蛙5 小时前
Tomcat与Jetty深度对比
java·tomcat·jetty
乌暮7 小时前
Spring AOP 与 Spring 事务:用大白话彻底理解原理与实践
java·数据库·spring boot·后端·sql·学习·spring
YDS8297 小时前
Small Spring IOC篇:容器事件及其监听器
java·spring
金銀銅鐵7 小时前
带您看懂字节码指令(三):一行加法里有什么
java·jvm
文丑颜不良啊7 小时前
LeetCode2921~2940题目解析
java·leetcode
北漂人Java8 小时前
基于 Spring AI Alibaba WorkFlow 构建 Java 生产级 AI Agent
java·人工智能·spring