Always check canReceive() before.
Always check canSend() before.
Notify the senders that they can write to this channel because you are blocked on it.
You can receive whenever there is a value stored without being blocked.
On a channel of size 1, the sender is blocked until something tells him he is ready to receive the value.
Maximum number of values the channel can store
Is the channel empty ?
Is the channel full ?
Number of values the channel is currently storing
The channel is active.
A pipe that allow synchronised communication between coroutines.