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