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 小时前
JAVA练习278- 和为 K 的子数组
java·学习·算法·leetcode
豆瓣鸡2 小时前
RocketMQ学习-Spring Boot消息实践
java·spring boot·rocketmq
罗超驿3 小时前
2.算法效率的核心密码:时间复杂度和空间复杂度详解
java·数据结构·算法
栈溢出了4 小时前
Redis 分片集群与哈希槽笔记
java·redis·笔记·spring
遨游DATA4 小时前
Spring Boot 启动失败排查:如何区分多 Bean 冲突与清理阶段异常
java·spring boot·后端
wabs6665 小时前
关于单调栈【力扣739.每日温度的思考】
java·开发语言
雪碧聊技术5 小时前
为什么要学函数式编程?
java·函数式编程
aaPIXa6225 小时前
C++ 用 13 条规则让模型写出安全现代 C++
java·c++·安全
2601_949817727 小时前
C++指针与引用深度精讲:底层原理、差异对比与高阶实战陷阱
java·jvm·c++
va学弟7 小时前
Java 网络通信编程(10):Channel 和 Selector
java·开发语言