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

多线程是指在一个程序中同时执行多个不同的任务,这是对于提高程序并发性和响应速度非常重要的概念。C++ 标准库提供了几个类和函数,可以轻松实现多线程。
以下是如何使用 C++ 标准库实现多线程:
包含头文件:
立即学习“C++免费学习笔记(深入)”;
#include <thread>
创建线程对象:
使用 std::thread 类来创建线程对象,并指定要执行的函数或可调用对象。
动态WEB网站中的PHP和MySQL详细反映实际程序的需求,仔细地探讨外部数据的验证(例如信用卡卡号的格式)、用户登录以及如何使用模板建立网页的标准外观。动态WEB网站中的PHP和MySQL的内容不仅仅是这些。书中还提到如何串联JavaScript与PHP让用户操作时更快、更方便。还有正确处理用户输入错误的方法,让网站看起来更专业。另外还引入大量来自PEAR外挂函数库的强大功能,对常用的、强大的包
508
std::thread t(function_or_lambda);
启动线程:
使用 std::thread::start() 方法来启动线程。此方法将开始一个新的线程,并执行指定的函数或可调用对象。
t.start();
等待线程完成:
使用 std::thread::join() 方法来等待线程完成其任务。
t.join();
计算多个数的总和:
使用多线程来计算一组数的总和。将数组分成多个子数组,然后创建多个线程来同时计算每个子数组的总和。最后将各个线程计算出的子数组总和相加即可得到总和。
#include <thread>
#include <vector>
using namespace std;
vector<int> numbers = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int num_threads = 4;
int sum(const vector<int>& arr, int start, int end) {
int sum = 0;
for (int i = start; i < end; i++) {
sum += arr[i];
}
return sum;
}
int main() {
// 创建线程数组
vector<thread> threads(num_threads);
// 计算每个线程负责的范围
int chunk_size = numbers.size() / num_threads;
vector<int> 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++的标准库实现多线程?的详细内容,更多请关注php中文网其它相关文章!
c++怎么学习?c++怎么入门?c++在哪学?c++怎么学才快?不用担心,这里为大家提供了c++速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号