从多个线程调用`std::shared_future<T>::wait`

cppreference明确表示std::shared_future<T>::wait从多个线程调用:

从多个线程在同一个 std::shared_future 上调用 wait 是不安全的;预期用途是等待相同共享状态的每个线程拥有 std::shared_future 的副本。

但我找不到这种说法的依据。标准标记中没有任何wait特殊情况。虽然标准说单个shared_future实例上的方法不同步,但你不需要同步,只要只调用 const 方法:

[17.6.5.9/3] C++ 标准库函数不应直接或间接修改当前线程以外的线程可访问的对象 (1.10),除非这些对象是通过函数的非常量参数直接或间接访问的,包括 this。

有矛盾的 答案上的SO被发现。有没有人有这方面的权威来源,可以解释如何const在 stdlib 上调用方法会导致竞争条件?

以上是从多个线程调用`std::shared_future&lt;T&gt;::wait`的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>