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

相关推荐
虾说羊几秒前
transferManager为什么在工作中禁止使用 (怎么进行优化 怎么避免多线程的堵塞)
java·服务器·数据库
码农水水1 分钟前
宇树科技Java面试被问:Atomic原子类的实现原理(CAS机制)
java·开发语言
liuc03175 分钟前
JAVA调用deepSeek demo
java·开发语言
爱吃山竹的大肚肚12 分钟前
Spring Boot 与 Apache POI 实现复杂嵌套结构 Excel 导出
java·spring boot·后端·spring·spring cloud·excel
SadSunset26 分钟前
(35)使用Spring的AOP
java·数据库·spring
better_liang28 分钟前
每日Java面试场景题知识点之-Spring AI企业级AI应用开发
java·面试题·智能客服·ai应用·spring ai·企业级开发
申城异乡人37 分钟前
使用Java Stream,将集合转换为一对一Map
java
廋到被风吹走37 分钟前
【Spring】Spring ORM 深度解析
java·后端·spring
bbq粉刷匠1 小时前
Java--二叉树概念及其基础应用
java·数据结构·算法