溫馨提示×

如何用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
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女