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++.
Table of contents
- Effective Modern C++ live! 00:49:42
- Title: Effective Modern C++ live!
- Release date: March 2015
- Publisher(s): O'Reilly Media, Inc.
- ISBN: 9781491934562
You might also like
Complete Modern C++
Learn the new C++ 11, 14, and 17 features with the most comprehensive C++ tutorial About …
Learning C++ Best Practices
In this Learning C++ Best Practices training course, expert author Jason Turner will teach you how …
C++ Concurrency in Action, Second Edition
C++ Concurrency in Action, Second Edition is the definitive guide to writing elegant multithreaded applications in …
Head First Design Patterns, 2nd Edition
You know you don’t want to reinvent the wheel, so you look to design patterns—the lessons …