Tutorial by Examples

A shared_lock can be used in conjunction with a unique lock to allow multiple readers and exclusive writers. #include <unordered_map> #include <mutex> #include <shared_mutex> #include <thread> #include <string> #include <iostream> class PhoneBook { ...
std::call_once ensures execution of a function exactly once by competing threads. It throws std::system_error in case it cannot complete its task. Used in conjunction with std::once_flag. #include <mutex> #include <iostream> std::once_flag flag; void do_something(){ std::ca...
Often you want to lock the entire object while you perform multiple operations on it. For example, if you need to examine or modify the object using iterators. Whenever you need to call multiple member functions it is generally more efficient to lock the whole object rather than individual member fu...
A generalization of std::condition_variable, std::condition_variable_any works with any type of BasicLockable structure. std::cv_status as a return status for a condition variable has two possible return codes: std::cv_status::no_timeout: There was no timeout, condition variable was notified st...

Page 1 of 1