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

溫馨提示×

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
华容县| 利川市| 银川市| 威信县| 合作市| 桂平市| 玛纳斯县| 渭南市| 台中市| 新密市| 平潭县| 类乌齐县| 苏尼特左旗| 大冶市| 三穗县| 门头沟区| 曲阜市| 通山县| 波密县| 周至县| 南开区| 湘西| 鲁甸县| 庆阳市| 和平县| 神农架林区| 湘潭县| 绩溪县| 甘泉县| 临沂市| 长子县| 都兰县| 泉州市| 手机| 綦江县| 河曲县| 哈密市| 蒙城县| 敦煌市| 霍林郭勒市| 平远县|