91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

如何在C++中實現多線程環境下的println

c++
小樊
82
2024-09-13 03:14:21
欄目: 編程語言

在 C++ 中,您可以使用 和<thread> 庫來實現多線程環境下的 println

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

std::mutex mtx; // 全局互斥鎖

void println(const std::string& msg) {
    std::unique_lock<std::mutex> lock(mtx); // 加鎖
    std::cout<< msg<< std::endl;
    lock.unlock(); // 解鎖
}

void print_numbers() {
    for (int i = 0; i < 10; ++i) {
        println("Thread 1: " + std::to_string(i));
        std::this_thread::sleep_for(std::chrono::milliseconds(100));
    }
}

void print_letters() {
    for (char c = 'A'; c <= 'J'; ++c) {
        println("Thread 2: " + std::string(1, c));
        std::this_thread::sleep_for(std::chrono::milliseconds(150));
    }
}

int main() {
    std::thread t1(print_numbers);
    std::thread t2(print_letters);

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

    return 0;
}

這個示例中,我們創建了兩個線程,一個打印數字,另一個打印字母。println 函數使用互斥鎖確保在多線程環境下輸出的正確性。當一個線程獲得鎖時,另一個線程必須等待,直到鎖被釋放。這樣可以確保每次只有一個線程訪問 std::cout,從而避免輸出混亂。

0
银川市| 南京市| 铜川市| 沽源县| 萍乡市| 北海市| 田林县| 正安县| 青川县| 上思县| 宣恩县| 宜丰县| 庐江县| 鄂托克前旗| 上饶县| 肃宁县| 德令哈市| 阜新市| 桓台县| 北宁市| 玉树县| 驻马店市| 闽侯县| 城市| 张家界市| 桃源县| 宁蒗| 郯城县| 武邑县| 双峰县| 屯留县| 烟台市| 红原县| 溧水县| 建始县| 榕江县| 磐安县| 营山县| 绥德县| 二连浩特市| 鄂州市|