Overview
Explore a comprehensive conference talk on designing concurrent C++ systems using message passing. Learn about the benefits and potential pitfalls of this approach, and dive into practical examples including dining philosophers and robot control systems. Discover how to structure code for better concurrency, avoid synchronization errors, and utilize message passing frameworks effectively. Gain insights from Anthony Williams, author of "C++ Concurrency in Action," as he demonstrates how to divide tasks, insulate application code from synchronization details, and implement state machines for robust concurrent systems.
Syllabus
Introduction
Agenda
Why Message Passing
The Cost
Potential Problems
Message Passing Framework
concurrency guarantees
control delivery mechanism
theory vs practice
focus
independent
value types
message handling
State machines
Dining philosophers
Actors
IO
Timing
philosophers
code
message
eating
timer expiry
managing the chopsticks
using chopsticks notify function
robot control system
central coordinator
moving the robot
waiting
in code
single thread
focus on one task
avoid overlap
message types
separate microservices
single threaded state machine
Taught by
ACCU Conference