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

溫馨提示×

如何正確使用c++ condition

c++
小樊
85
2024-07-24 13:33:13
欄目: 編程語言

C++中的條件變量(condition variable)是一種線程同步機制,用于在多線程編程中控制線程的執行順序和通信。正確使用條件變量需要遵循以下步驟:

  1. 創建條件變量對象:使用std::condition_variable類創建條件變量對象。

  2. 創建互斥量對象:使用std::mutex類創建互斥量對象,用于保護共享數據。

  3. 在需要等待某個條件的線程中,通過std::unique_lockstd::mutex對象鎖住互斥量。

  4. 調用std::condition_variable的wait()方法等待條件的發生,同時釋放互斥量,使得其他線程可以訪問共享數據。

  5. 在滿足條件時,通過notify_one()或notify_all()方法通知等待的線程。

以下是一個簡單的示例代碼:

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

std::mutex mtx;
std::condition_variable cv;
bool ready = false;

void worker_thread()
{
    std::unique_lock<std::mutex> lck(mtx);
    cv.wait(lck, [] { return ready; });
    std::cout << "Worker thread is processing data" << std::endl;
}

int main()
{
    std::thread worker(worker_thread);

    {
        std::lock_guard<std::mutex> lck(mtx);
        ready = true;
    }

    cv.notify_one();

    worker.join();

    return 0;
}

在上述示例中,worker_thread函數通過條件變量cv等待ready變量為true,主線程在修改ready后通過notify_one()通知worker_thread線程。

0
永顺县| 黄石市| 桃江县| 麦盖提县| 应城市| 天峨县| 潮州市| 青河县| 磴口县| 光山县| 新干县| 盘锦市| 深泽县| 晋宁县| 辉县市| 中西区| 鹤山市| 彩票| 清水县| 湖口县| 蓬安县| 慈溪市| 绵阳市| 应用必备| 孝感市| 玉门市| 陆丰市| 五华县| 合川市| 镇平县| 长寿区| 崇阳县| 鄂州市| 福州市| 丰镇市| 鹿泉市| 伊吾县| 鲁山县| 安国市| 眉山市| 塘沽区|