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

相关推荐
重生之后端学习24 分钟前
236. 二叉树的最近公共祖先
java·数据结构·算法·职场和发展·深度优先
Sun_gentle31 分钟前
java.lang.RuntimeException: Could not load wrapper properties from ‘C:\Users\
java·开发语言·安卓
笨蛋不要掉眼泪42 分钟前
Nacos配置中心详解:核心用法、动态刷新与经典面试题解析
java·数据库·后端
橙露42 分钟前
面向对象编程思想:Java 与 Python 的封装、继承与多态对比分析
java·开发语言·python
上海合宙LuatOS1 小时前
LuatOS核心库API——【io】 io操作(扩展)
java·服务器·前端·网络·单片机·嵌入式硬件·物联网
追随者永远是胜利者1 小时前
(LeetCode-Hot100)42. 接雨水
java·算法·leetcode·职场和发展·go
lifallen1 小时前
点分治 (Centroid Decomposition)
java·数据结构·算法
Hx_Ma163 小时前
测试题(三)
java·开发语言·后端
星火开发设计4 小时前
序列式容器:deque 双端队列的适用场景
java·开发语言·jvm·c++·知识
java1234_小锋4 小时前
Java高频面试题:为什么Zookeeper集群的数目一般为奇数个?
java·zookeeper·java-zookeeper