阅读量:2
在Linux上使用C++进行多线程编程,可以使用C++11标准中的库
#include
#include
#include
// 函数将在多个线程中运行
void print_numbers(int start, int end) {
for (int i = start; i <= end; ++i) {
std::cout << "Thread ID: " << std::this_thread::get_id() << ", Number: "<< i << std::endl;
}
}
int main() {
const int num_threads = 4;
const int numbers_per_thread = 10;
// 创建一个线程向量
std::vector threads;
// 计算每个线程需要打印的数字范围
int range = numbers_per_thread / num_threads;
// 为每个线程分配一个数字范围
for (int i = 0; i < num_threads; ++i) {
int start = i * range + 1;
int end = (i == num_threads - 1) ? numbers_per_thread : (i + 1) * range;
threads.emplace_back(print_numbers, start, end);
}
// 等待所有线程完成
for (auto& t : threads) {
t.join();
}
std::cout << "All threads finished." << std::endl;
return 0;
}
这个示例中,我们创建了一个名为print_numbers的函数,它接受两个参数:要打印的数字范围的起始值和结束值。在main函数中,我们创建了4个线程,并为每个线程分配了一个数字范围。然后,我们使用join()函数等待所有线程完成。
编译并运行此程序时,您将看到每个线程打印其分配的数字范围。
以上就是关于“如何用c++在linux多线程”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm