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

YouTube

Rethinking Classical Concurrency Patterns

Gopher Academy via YouTube

Overview

Explore classical concurrency patterns and their Go alternatives in this GopherCon 2018 talk. Delve into lightweight goroutines and concurrency primitives, examining how they change cost/benefit tradeoffs. Learn to start goroutines for concurrent work, share by communicating, and implement asynchronous APIs. Discover techniques to avoid blocking UI and network threads, reduce idle threads, and reclaim stack frames. Understand how to make concurrency an internal detail and address challenges with condition variables. Gain insights on sharing resources, data, and completion through communication. Examine worker lifetimes and idle workers, and recap key concepts for effective concurrent programming in Go.

Syllabus

Intro
Rethinking Classical Concurrency Patterns
Start goroutines when you have concurrent work.
Share by communicating.
An asynchronous API
Avoid blocking UI and network threads.
Reduce idle threads.
Reclaim stack frames.
Make concurrency an internal detail.
Condition Variables
Spurious wakeups
Forgotten signals
Starvation
Unresponsive cancellation
Share resources by communicating the resources.
Resource limits are resources too!
Share data by communicating the data.
Mark transitions.
Share completion by completing communication.
Events can be completions.
Share a thing by communicating the thing
Worker lifetimes
Idle workers
Recap

Taught by

Gopher Academy

Reviews

Start your review of Rethinking Classical Concurrency Patterns

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.