亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

C++中如何創建自定義線程類

c++
小樊
88
2024-08-29 22:40:59
欄目: 編程語言

在C++中,可以通過繼承std::thread類來創建自定義線程類

#include<iostream>
#include<thread>
#include <mutex>

class CustomThread : public std::thread {
public:
    CustomThread(int id) : std::thread(&CustomThread::execute, this), m_id(id) {}

    void join() {
        if (this->joinable()) {
            std::thread::join();
        }
    }

private:
    int m_id;
    std::mutex m_mutex;

    void execute() {
        m_mutex.lock();
        std::cout << "Thread " << m_id << " is running."<< std::endl;
        m_mutex.unlock();
    }
};

int main() {
    CustomThread t1(1);
    CustomThread t2(2);

    t1.join();
    t2.join();

    return 0;
}

在這個示例中,我們創建了一個名為CustomThread的自定義線程類,它繼承自std::thread。我們重寫了join()方法,以便在調用join()之前檢查線程是否可加入。此外,我們還添加了一個私有成員變量m_id,用于存儲線程的ID。

execute()方法是線程的主要任務,它將線程ID打印到控制臺。注意,我們使用互斥鎖m_mutex來確保在多線程環境下輸出的正確性。

main()函數中,我們創建了兩個CustomThread對象,并調用它們的join()方法來等待線程完成。

0
大洼县| 锡林郭勒盟| 那坡县| 望江县| 嘉黎县| 商南县| 东方市| 威海市| 黑河市| 灵台县| 平阴县| 梅河口市| 城步| 会昌县| 福海县| 樟树市| 岳阳市| 永胜县| 芷江| 扬州市| 乌海市| 嘉禾县| 龙州县| 安宁市| 元阳县| 云阳县| 荣成市| 金华市| 靖江市| 日土县| 株洲县| 巴林左旗| 张家口市| 白沙| 宁陵县| 洛阳市| 阿合奇县| 碌曲县| 烟台市| 镇安县| 无极县|