0
点赞
收藏
分享

微信扫一扫

【C++11】std::future和std::shared_future区别

脱下愤怒的小裤衩 2022-04-26 阅读 76
c++

【C++11】std::future和std::shared_future区别

std::future使用

可以处理所有在线程间数据转移的必要同步,但是std::future模型独享同步结果的所有权。并且通过 get() 函数,一次性的获取数据,让并发访问变的毫无意义。你的并发代码没有办法让多个线程等待同一个事件。

std::shared_future

std::shared_future 可以完成让多个线程的等待

std::promise<std::string> p;
std::shared_future<std::string> sf(p.get_future());	//隐式转移所有权

//使用类型推导
std::promise< std::map< someindextype, somedatatype>::iterator > p;
auto sf = p.get_future().share();

举报

相关推荐

0 条评论