[英]Does std::promise internally use std::condition_variable to notify the associated std::future?
我的問題是std::promise
通過使用std::condition_variable
來通知關聯的std::future
嗎?
我搜索std::promise
的源代碼並找到了這個網站 。 但我沒有看到std::promise
在其成員數據中有std::condition_variable
。
這是libc ++的答案。
在<future>
搜索condition_variable
返回一個結果:
// lines 531 -- 538
class _LIBCPP_TYPE_VIS _LIBCPP_AVAILABILITY_FUTURE __assoc_sub_state
: public __shared_count
{
protected:
exception_ptr __exception_;
mutable mutex __mut_;
mutable condition_variable __cv_;
unsigned __state_;
這里引入了__assoc_sub_state
。 它是__assoc_state
的基類:
// lines 617 -- 619
template <class _Rp>
class _LIBCPP_AVAILABILITY_FUTURE __assoc_state
: public __assoc_sub_state
最后, __assoc_state<_Rp>*
都是future<_Rp>
的成員:
// lines 1082 -- 1085
template <class _Rp>
class _LIBCPP_TEMPLATE_VIS _LIBCPP_AVAILABILITY_FUTURE future
{
__assoc_state<_Rp>* __state_;
和promise<_Rp>
的成員:
// lines 1360 -- 1363
template <class _Rp>
class _LIBCPP_TEMPLATE_VIS _LIBCPP_AVAILABILITY_FUTURE promise
{
__assoc_state<_Rp>* __state_;
所以是的,libc ++ std::promise
內部使用std::condition_variable
來通知關聯的std::future
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.