溫馨提示×

C++中notify_all的正確用法

c++
小樊
149
2024-07-21 11:02:01
欄目: 編程語言

在C++中,notify_all()是一個成員函數,通常與std::condition_variable一起使用,用于通知等待中的線程。正確使用notify_all的一般步驟如下:

  1. 創建一個std::mutex對象和一個std::condition_variable對象:
std::mutex mtx;
std::condition_variable cv;
  1. 在需要等待通知的線程中,使用unique_lockstd::mutex鎖住互斥量,并通過wait()函數等待通知:
std::unique_lock<std::mutex> lock(mtx);
cv.wait(lock);
  1. 在另一個線程中,當某個條件滿足時,通過notify_all()通知所有等待中的線程:
cv.notify_all();

需要注意的是,在調用notify_all()之前,必須先鎖住互斥量,以確保在通知發出后,等待中的線程能夠正確被喚醒。另外,也可以使用notify_one()函數只通知一個等待中的線程。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女