Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

YouTube

Thinking Outside the Synchronisation Quadrant

ACCU Conference via YouTube

Overview

Explore concurrency beyond traditional thread-based synchronization in this ACCU 2017 conference talk. Delve into a quadrant-based approach to concurrency, examining the intersections of mutable-immutable and shared-unshared paradigms. Discover patterns and practices that extend beyond lock-based solutions, including immutability and actor models, applicable to languages like C++, C#, and Java. Learn about the significance of architecture in system design, dynamic resource allocation to prevent deadlocks, and the concept of code habitability. Investigate the importance of unit testing in preventing critical failures in distributed systems, and understand the shift from shared memory models to process-based, message-passing approaches in concurrent programming.

Syllabus

Intro
Thinking Outside the Synchronisation Quadrant @KevlinHenney
Architecture represents the significant design decisions that shape a system, where significant is measured by cost of change. Grady Booch
Dynamic avoidance by careful resource allocation - check to see if a resource can be granted, and if granting it will cause deadlock, don't grant it.
habitable
Habitability is the characteristic of source code that enables programmers, coders, bug-fixers, and people coming to the code later in its life to understand its construction and intentions and to change it comfortably and confidently.
Simple Testing Can Prevent Most Critical Failures An Analysis of Production Failures in Distributed Data-Intensive Systems
A majority of the production failures (77%) can be reproduced by a unit test.
We want our code to be unit testable. What is a unit test?
A unit test is a test of behaviour whose success or failure is wholly determined by the correctness of the test and the correctness of the unit under test.
What do we want from unit tests?
passes, it shows the code is correct.
fails, it shows the code is incorrect.
immutable
sequential
asynchronous
Instead of using threads and shared memory as our programming model, we can use processes and message passing. Process here just means a protected independent state with executing code, not necessarily an operating system process.

Taught by

ACCU Conference

Reviews

Start your review of Thinking Outside the Synchronisation Quadrant

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.