C++多线程C++从入门到放弃

c++ 异步(下) future头文件

2019-07-02  本文已影响0人  lixin_karl

future

例子

promise

函数的返回值被保存在promise变量里面,需要的时候可以拿出来用。

std::promise<int> pr;
std::thread t([](std::promise<int> &pr){
     pr.set_value_at_thread_exit(11);
},std::ref(pr));
auto fut = pr.get_future();
std::cout<<fut.get()<<std::endl;
packaged_task

将函数保存在packaged_task里面,函数的返回结果可以在需要的时候取出来用.

std::packaged_task<int()> task([](){return 2;});
std::thread t1(std::ref(task));
std::cout<<task.get_future().get()<<std::endl;

最终都是转化成std::future变量,从此中取出函数运行的结果。

上一篇下一篇

猜你喜欢

热点阅读