亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

wait_for()超時之后,是繼續阻塞;還是執行后續語句 ?

wait_for()超時之后,是繼續阻塞;還是執行后續語句 ?

C++
小唯快跑啊 2023-03-03 14:10:23
std::unique_lock<std::mutex>my_lc(my_mutex);my_cond.wait_for(my_lc, std::chrono::milliseconds(10000));
查看完整描述

2 回答

?
慕姐8265434

TA貢獻1813條經驗 獲得超2個贊

根據c++源碼看,超時后會退出阻塞,繼續執行后續代碼
template <class Rep, class Period>
cv_status wait_for (unique_lock<mutex>& lck,
const chrono::duration<Rep,Period>& rel_time);
return wait_until (lck,chrono::steady_clock::now() + rel_time, std::move(pred));
帶謂詞
template <class Rep, class Period, class Predicate>
bool wait_for (unique_lock<mutex>& lck,
const chrono::duration<Rep,Period>& rel_time, Predicate pred);
while (!pred())
if (wait_until(lck,abs_time) == cv_status::timeout) 
return pred();//超時后調用謂詞并返回結果,true or false
return true;

 


查看完整回答
反對 回復 2023-03-06
?
犯罪嫌疑人X

TA貢獻2080條經驗 獲得超4個贊

如果沒有獲取到,仍然處于阻塞狀態

查看完整回答
反對 回復 2023-03-06
  • 2 回答
  • 0 關注
  • 144 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號