- Executors
-
Learn
Learn Python Runnable examples, NumPy, pandas, and more Learn AINeural networks, ML and LLMs from scratch Learn C & C++ Pointers, memory, STL, and modern C++ Learn C#C# basics, OOP, LINQ, async, and .NET exercises Learn MatplotlibLine, bar, scatter and pie charts with live visualizers Learn RustOwnership, traits, error handling, and threads Learn GoSlices, interfaces, goroutines, and channels Python Algorithms Search, sorting, recursion, and visualizers O(n) C & C++ Algorithms Compare algorithms implemented in C and C++ Coding for Kids Learn to code by playing!
- ChallengesNew
- For TeachersNew
- Updates
- Buy me a coffee
Go concurrency
Goroutines, channels, select, Mutex, worker pools and context.
- Lesson 1 challenge Goroutines and WaitGroup Start lightweight threads with go and wait for them with sync.WaitGroup.
- Lesson 1 challenge Channels Send values between goroutines with channels, buffered and unbuffered.
- Lesson 1 challenge Select and Timeouts Wait on several channels at once and stop waiting after a timeout.
- Lesson 1 challenge Mutex: Protecting Shared Data Let several goroutines change one value safely with sync.Mutex.
- Lesson 1 challenge Worker Pool Share a queue of jobs between a fixed number of goroutines.
- Lesson 1 challenge Context: Cancellation and Deadlines Stop work that takes too long or is no longer needed with context.