Avoid channels except for straight forward, producer-consumer workflows. Use mutexes and other traditional concurrency primitives for other stuff. Channels are a huge shotgun with caveats.
As evidence that channels should be used rarely, and only in small scopes, consider the number of places chan is used in the standard library.