Thinking Outside the Synchronisation Quadrant
Explore a comprehensive conference talk on concurrency programming paradigms beyond traditional thread synchronization. Delve into the four quadrants of concurrency defined by mutable-immutable and shared-unshared axes, examining how modern C++ supports various approaches. Learn about patterns and practices that encourage thinking outside the conventional "locked box" approach, including immutability, actors, and other alternative concurrency models. Discover how to leverage these concepts to create more robust, testable, and maintainable concurrent systems. Gain insights into architectural decisions that shape system design, the importance of code habitability, and the benefits of asynchronous programming models inspired by languages like Erlang and occam. Investigate the use of queues, pipes and filters, monitor objects, and active objects as powerful tools for managing concurrent and parallel systems effectively.