C++学习笔记(四十六):c++ 多线程

发布时间:2024年01月22日

本节介绍c++多线程相关的知识。使用多线程,主要是为了提高程序的并行度,进而提高程序的性能。具体可以参照?并发支持库 - cppreference.comicon-default.png?t=N7T8https://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';

}

文章来源:https://blog.csdn.net/qq_16701727/article/details/135729925
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。