gpt4 book ai didi

rust - 当两个条件变量之一通知时,是否可以等待并返回?

转载 作者:行者123 更新时间:2023-12-03 11:42:58 25 4
gpt4 key购买 nike

Rust中Condvar的用法如下:

let pair = Arc::new((Mutex::new(true), Condvar::new()));
//...
let (lock, cvar) = &*pair;
let _guard = cvar.wait_while(lock.lock().unwrap(), SOMETHING_HERE).unwrap();
我可以放入 SOMETHING_HERE中以正确方式等待的东西吗?我正在考虑解决此问题的最简单方法。
我的想法是让第三个条件变量等待与其他条件相关的两个变量,但是我不知道该怎么做。

最佳答案

创建第三个Condvar,并记得在每次通知前两个时都通知它。
无论如何,请考虑使用一个Condvar。由于它们可能会虚假地唤醒,因此您已经需要检查“谓词”,即Mutex是否实际上进行了任何相关更改。

关于rust - 当两个条件变量之一通知时,是否可以等待并返回?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62945306/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com