簡體   English   中英

std :: promise內部是否使用std :: condition_variable來通知關聯的std :: future?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM