如何使用C++的标准库实现多线程?

c++++ 标准库中实现多线程的方法:包含头文件:#include 创建线程对象:std::thread t(function_or_lambda)启动线程:t.start()等待线程完成:t.join()

如何使用C++的标准库实现多线程?

使用 C++ 标准库实现多线程

多线程是指在一个程序中同时执行多个不同的任务,这是对于提高程序并发性和响应速度非常重要的概念。C++ 标准库提供了几个类和函数,可以轻松实现多线程。

以下是如何使用 C++ 标准库实现多线程:

包含头文件:

立即学习“C++免费学习笔记(深入)”;

#include 

创建线程对象:
使用 std::thread 类来创建线程对象,并指定要执行的函数或可调用对象。

std::thread t(function_or_lambda);

启动线程:
使用 std::thread::start() 方法来启动线程。此方法将开始一个新的线程,并执行指定的函数或可调用对象。

t.start();

等待线程完成:
使用 std::thread::join() 方法来等待线程完成其任务。

t.join();

实战案例:

计算多个数的总和:

使用多线程来计算一组数的总和。将数组分成多个子数组,然后创建多个线程来同时计算每个子数组的总和。最后将各个线程计算出的子数组总和相加即可得到总和。

#include #include using namespace std;vector numbers = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};int num_threads = 4;int sum(const vector& arr, int start, int end) {  int sum = 0;  for (int i = start; i < end; i++) {    sum += arr[i];  }  return sum;}int main() {  // 创建线程数组  vector threads(num_threads);  // 计算每个线程负责的范围  int chunk_size = numbers.size() / num_threads;  vector partial_sums(num_threads);  for (int i = 0; i < num_threads; i++) {    int start = i * chunk_size;    int end = min((i + 1) * chunk_size, numbers.size());        // 创建线程并计算部分和    threads[i] = thread(sum, ref(numbers), start, end);  }  // 等待所有线程完成  for (int i = 0; i < num_threads; i++) {    threads[i].join();  }  // 计算总体和  int total_sum = 0;  for (int partial_sum : partial_sums) {    total_sum += partial_sum;  }  cout << "Total sum: " << total_sum << endl;  return 0;}

以上就是如何使用C++的标准库实现多线程?的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1453117.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月18日 05:41:28
下一篇 2025年12月18日 05:41:48

相关推荐

发表回复

登录后才能评论
关注微信