Channels¶
A channel transfers values between concurrent tasks while coordinating senders and receivers.
flowchart LR
J[Junior: send and receive] --> M[Middle: compose pipelines] --> S[Senior: lifecycle and pressure] --> P[Professional: runtime design]
flowchart LR
Producer -->|send| Channel[(Bounded channel)] -->|receive| Consumer
| Level | Guide | You are done when |
|---|---|---|
| Junior | Start | You can use buffered and unbuffered channels. |
| Middle | Apply | You can build cancellation-safe fan-out/fan-in. |
| Senior | Operate | You can prevent leaks and overload. |
| Professional | Design | You can choose channel semantics and implementation. |
Practice rule: The sending side owns closure; every blocked operation needs a cancellation path.