Frank Müller
Concurrency with Go
#1about 6 minutes
Concurrency as a natural model for software design
Modern software can be structured like the real world by composing independent processes that communicate with each other.
#2about 4 minutes
The evolution from threads to modern concurrency
Modern runtimes manage lightweight processes, moving beyond complex, error-prone threading with mutexes to encapsulated state and message passing.
#3about 6 minutes
Actor model vs communicating sequential processes (CSP)
Go's concurrency is built on the Communicating Sequential Processes (CSP) model, where anonymous processes communicate over named channels, unlike the Actor model's named processes with inboxes.
#4about 8 minutes
Common patterns for concurrent architectures
Concurrency enables powerful design patterns like service providers, resource managers, supervisors for fault tolerance, and ETL data pipelines.
#5about 4 minutes
An overview of the Go programming language
Go is a pragmatic, multi-paradigm language designed by pioneers like Ken Thompson and Rob Pike, featuring implicit interfaces and first-class functions.
#6about 8 minutes
Go's core concurrency primitives: goroutines and channels
Lightweight concurrent functions called goroutines are launched with the `go` keyword and communicate or synchronize over typed channels.
#7about 3 minutes
Waiting for goroutines with sync.WaitGroup
The `sync.WaitGroup` type provides a simple and effective mechanism to block the main goroutine until a collection of background jobs has completed.
#8about 6 minutes
Streaming and piping data with channels
Channels can be used to stream data between goroutines, and closing a channel signals the end of the stream to a ranging receiver.
#9about 5 minutes
Building a concurrent service with multiple channels
A common but verbose approach to building a concurrent service involves creating separate channels for each type of operation, leading to complex state management.
#10about 5 minutes
A simpler actor-like pattern using a function channel
A more elegant service pattern uses a single channel to send functions, which are then executed sequentially by the background goroutine, simplifying the API and centralizing logic.
Related jobs
Jobs that call for the skills explored in this talk.
MARKT-PILOT GmbH
Stuttgart, Germany
Remote
€75-90K
Senior
Java
TypeScript
+1
Matching moments
01:32 MIN
Organizing a developer conference for 15,000 attendees
Cat Herding with Lions and Tigers - Christian Heilmann
04:49 MIN
Using content channels to build an event community
Cat Herding with Lions and Tigers - Christian Heilmann
04:57 MIN
Increasing the value of talk recordings post-event
Cat Herding with Lions and Tigers - Christian Heilmann
03:17 MIN
Selecting strategic partners and essential event tools
Cat Herding with Lions and Tigers - Christian Heilmann
02:44 MIN
Rapid-fire thoughts on the future of work
What 2025 Taught Us: A Year-End Special with Hung Lee
03:39 MIN
Breaking down silos between HR, tech, and business
What 2025 Taught Us: A Year-End Special with Hung Lee
03:38 MIN
Balancing the trade-off between efficiency and resilience
What 2025 Taught Us: A Year-End Special with Hung Lee
03:48 MIN
Automating formal processes risks losing informal human value
What 2025 Taught Us: A Year-End Special with Hung Lee
Featured Partners
Related Videos
Concurrency in Python
Fabian Schindler
Coroutine explained yet again 60 years later
Mikhail Maslo
Introduction and pitfalls of Java's new concurrency model
David Vlijmincx
C++ in constrained environments
Bjarne Stroustrup
Modern Java: This is not your father's Java anymore
Ron Veen
Java 21: The Revolution of Virtual Threads - A Deep Dive
Christian Woerz
Go Generics
Nils Kasseckert
Functional Programming in C++
Jonathan Müller
Related Articles
View all articles
.gif?w=240&auto=compress,format)


From learning to earning
Jobs that call for the skills explored in this talk.



Silbury Deutschland GmbH
Intermediate
Go
API
Java
NoSQL
React
+7

Secunet
Berlin, Germany
GIT
Shell
Gitlab
Ansible
Grafana
+4

Workwise GmbH
Dresden, Germany
€48-68K
Intermediate
Go
API
NoSQL
MongoDB
+2

FERCHAU GmbH
Bielefeld, Germany
Go
API
Azure
Microservices
Amazon Web Services (AWS)



Delivery Hero AG
Berlin, Germany
Go
Python
Docker
Grafana
Prometheus
+2