Sleep and Wait
Explore how to handle time management in modern C++ multithreading by understanding sleep and wait strategies using time durations and time points. Learn different waiting methods for threads and futures through hands-on examples demonstrating how to synchronize threads effectively.
We'll cover the following...
We'll cover the following...
One important feature that multithreading components such as threads, locks, condition variables, and futures have in common is the notion of time.
Conventions
The methods for handling time in multithreading programs follow a simple convention: Methods ending with _for have to be parametrized by a time duration; methods ending with _until by a time point. Here is a concise overview of the methods that deal with sleeping, blocking, and waiting:
| Multithreading Component | _until | _for |
|---|---|---|
std::thread th |
th.sleep_until(in2min) |
th.sleep_for(2s) |
std::unique_lock lk |
lk.try_lock_until(in2min) |
lk.try_lock(2s) |