c – 为什么std :: lock没有超时支持?

前端之家收集整理的这篇文章主要介绍了c – 为什么std :: lock没有超时支持?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如果我想抓住多个锁而不会遇到死锁的危险,我可以使用std :: lock函数
int data1,data2;
std::mutex m1,m2;
std::unique_lock<std::mutex> lock1(m1,std::defer_lock);
std::unique_lock<std::mutex> lock2(m2,std::defer_lock);

std::lock(lock1,lock2);           // guaranteed deadlock-free

// work with data1 and data2

但是如果我想在指定的时间内获取锁,否则超时?是否有理由没有像try_until这样的锁,类似于wait_until的期货和条件变量?

解决方法

Why no timeout support in std::lock?

因为没人提出.
>因为这个领域是如此有争议,所以建议越少,越有可能被接受.
>因为我们害怕,如果我们标准化一切,你会觉得无聊.
这是为读者留下的一个练习.

嗯…我没有想法…

猜你在找的C&C++相关文章