温馨提示×

如何用c++在linux多线程

c++
小樊
100
2024-12-04 02:08:40
栏目: 编程语言

在Linux上使用C++进行多线程编程,可以使用C++11标准中的<thread>

#include <iostream> #include <thread> #include <vector> // 函数将在多个线程中运行 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<std::thread> 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()函数等待所有线程完成。

编译并运行此程序时,您将看到每个线程打印其分配的数字范围。

0