Rethinking Classical Concurrency Patterns
Offered By: Gopher Academy via YouTube
Course Description
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
Related Courses
A Holistic Go ExperienceGopher Academy via YouTube Safe, Fast, and Easy - Building a Plugin System with WebAssembly
Gopher Academy via YouTube A Journey Through Integration Testing with Go - What Could Go Wrong?
Gopher Academy via YouTube Kraken Wrangling for Dummies - Go Module Dependency Management at Scale
Gopher Academy via YouTube Go, the Data Engineer's Missing Tool?
Gopher Academy via YouTube