本节介绍c++多线程相关的知识。使用多线程,主要是为了提高程序的并行度,进而提高程序的性能。具体可以参照?并发支持库 - cppreference.comhttps://zh.cppreference.com/w/cpp/thread以下通过事例简单介绍future相关的知识。代码如下:
#include <iostream>
#include <thread>
#include<future>
int main() {
//来自pcakaged_task的future
std::packaged_task<int()> task([]() {return 7; });
std::future<int> f1 = task.get_future();
std::thread(std::move(task)).detach();
//来自async的future
std::future<int> f2 = std::async(std::launch::async, []() {return 8; });
// 来自 promise 的 future
std::promise<int> p;
std::future<int> f3 = p.get_future();
std::thread([&p] { p.set_value_at_thread_exit(9); }).detach();
std::cout << "Waiting..." << std::flush;
f1.wait();
f2.wait();
f3.wait();
std::cout << "Done!\nResults are: "
<< f1.get() << ' ' << f2.get() << ' ' << f3.get() << '\n';
}