In this chapter, the following recipes will be covered:
- Using channels and the select statement
- Performing async operations with sync.WaitGroup
- Using atomic operations and mutex
- Using the context package
- Executing state management for channels
- Using the worker pool design pattern
- Using workers to create pipelines