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

溫馨提示×

c++中wait的用法是什么

c++
小億
153
2024-04-08 16:53:37
欄目: 編程語言

在C++中,wait通常用于線程同步機制中,用于使當前線程進入等待狀態,直到條件滿足或者被通知后才繼續執行。wait通常與mutexcondition_variable一起使用。具體用法如下:

  1. 使用std::unique_lock<std::mutex>對象對mutex進行加鎖。
  2. 調用condition_variable對象的wait方法,將unique_lock對象傳入,使當前線程進入等待狀態。
  3. 在另一個線程中滿足某個條件時,調用condition_variable對象的notify_onenotify_all方法,通知等待的線程。
  4. 等待的線程被通知后,wait方法返回,繼續執行。

示例代碼如下:

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

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

void wait_func() {
    std::unique_lock<std::mutex> lck(mtx);
    while (!ready) {
        cv.wait(lck);
    }
    std::cout << "Thread is notified." << std::endl;
}

void notify_func() {
    std::this_thread::sleep_for(std::chrono::seconds(2));
    {
        std::lock_guard<std::mutex> lck(mtx);
        ready = true;
    }
    cv.notify_one();
}

int main() {
    std::thread t1(wait_func);
    std::thread t2(notify_func);
    
    t1.join();
    t2.join();
    
    return 0;
}

在上面的示例中,wait_func線程等待ready狀態變為truenotify_func線程在2秒后將ready狀態設置為true并通知等待的線程。

0
政和县| 衡阳市| 兴隆县| 宜黄县| 桐柏县| 新余市| 广灵县| 澳门| 乌兰察布市| 光山县| 华池县| 弋阳县| 乌兰县| 扎兰屯市| 茶陵县| 英德市| 商南县| 乡宁县| 阿巴嘎旗| 嘉禾县| 田东县| 武鸣县| 巴中市| 天全县| 东阳市| 图们市| 上犹县| 宝清县| 军事| 邵东县| 永康市| 天水市| 永城市| 鲜城| 纳雍县| 峡江县| 格尔木市| 政和县| 老河口市| 旺苍县| 丰县|