What's the best way for one thread to notify another that an event has taken place? The traditional approach is to use a condition variable, but that requires a mutex, and for simple event communication, that seems like overkill: no data requires synchronized access. An alternative is to use a shared flag, but that requires polling on the part of the thread waiting for notification.As of C++11, an interesting new option is the use of a void future. …
Effective Modern C++ live
Video description
What's the best way for one thread to notify another that an event has taken place? The traditional approach is to use a condition variable, but that requires a mutex, and for simple event communication, that seems like overkill: no data requires synchronized access. An alternative is to use a shared flag, but that requires polling on the part of the thread waiting for notification.As of C++11, an interesting new option is the use of a void future. Like the approach based on condition variables, the task waiting for notification truly blocks—no polling is required. Like the approach based on a shared flag, there's no need for a mutex. The approach even makes it possible for the notifying thread to throw an exception that the waiting-to-be-notified thread can catch. However, a design based on void futures has costs and is constrained by restrictions that developers must keep in mind when choosing among these event-communication strategies.In this webcast, Scott Meyers covers the pros and cons of void futures as a mechanism for event communication among threads. It's based on information in chapter 7 ("The Concurrency API") of his best-selling new book, Effective Modern C++.
Start your Free Trial Self paced Go to the Course We have partnered with providers to bring you collection of courses, When you buy through links on our site, we may earn an affiliate commission from provider.
This site uses cookies. By continuing to use this website, you agree to their use.I Accept