当前位置:网站首页>std::condition_ variable::wait_ for
std::condition_ variable::wait_ for
2022-06-13 05:02:00 【Snow * sleet * snow】
wait:https://blog.csdn.net/qq_34999565/article/details/120874408?utm_source=app&app_version=4.17.0&code=app_1562916241&uLinkId=usr1mkqgl919blen
Examples of use , and wait Is the difference between the wait_for You can set a timeout
#include <iostream>
#include <atomic>
#include <condition_variable>
#include <thread>
#include <chrono>
using namespace std::chrono_literals;
std::condition_variable cv;
std::mutex cv_m;
int i;
void waits(int idx)
{
std::unique_lock<std::mutex> lk(cv_m);
if(cv.wait_for(lk, idx*100ms, []{
return i == 1;}))
std::cerr << "Thread " << idx << " finished waiting. i == " << i << '\n';
else
std::cerr << "Thread " << idx << " timed out. i == " << i << '\n';
}
void signals()
{
std::this_thread::sleep_for(120ms);
std::cerr << "Notifying...\n";
cv.notify_all();
std::this_thread::sleep_for(100ms);
{
std::lock_guard<std::mutex> lk(cv_m);
i = 1;
}
std::cerr << "Notifying again...\n";
cv.notify_all();
}
int main()
{
std::thread t1(waits, 1), t2(waits, 2), t3(waits, 3), t4(signals);
t1.join();
t2.join();
t3.join();
t4.join();
}
Output :
Thread 1 timed out. i == 0
Notifying…
Thread 2 timed out. i == 0
Notifying again…
Thread 3 finished waiting. i == 1
2
3
边栏推荐
- Trust programming - linked lists: use struct to implement linked lists, use heap to merge K ascending linked lists, and customize display
- Luogu p1036 number selection
- Common skills in embedded programming
- Logical point
- Mysql8.0.13 installation tutorial (with pictures)
- metaRTC4.0稳定版发布
- shell变量学习笔记
- [JS solution] leedcode 117 Populate the next right node pointer II for each node
- File descriptorfile description
- C language learning log 1.16
猜你喜欢
Win8.1和Win10各自的优势
Analysis of scoped attribute principle and depth action selector
BM1Z002FJ-EVK-001开机测评
C language learning log 12.14
Explain the role of key attribute in V-for
CMB's written test -- data analysis
Mind mapping series - Database
Advanced C - Section 3 - character functions and string functions
Gradient descent, learning rate
File descriptorfile description
随机推荐
Clause 48: understand template metaprogramming
2021tami/ image processing: exploiting deep generative priority for versatile image restoration and manipulation
Search DFS and BFS
C language learning log 10.5
Luogu p1012 guess
Advantages of win8.1 and win10
Section 8 - Practical commissioning techniques
Recursion and recursion
1.2 differences caused by keywords
Chapter 17 free space management
Chinese trumpet creeper
Differences between string() and tostring() methods
Explain the differences and usage scenarios between created and mounted
C language learning log 1.24
C language learning log 10.10
Little C's Notepad
Several methods of identifying equivalent circuit of circuit drawing
Force buckle 92 Reverse linked list II
rainbow
Simple sr: Best Buddy Gans for highly detailed image super resolution Paper Analysis