Ответ
Если размышлять глобально, то таких способа 3:
- завершение main функции и main горутины;
- прослушивание всеми горутинами channel, при закрытии channel отправляется значение по умолчанию всем слушателям, при получении сигнала все горутины делают return;
- завязать все горутины на переданный в них context.
@golang_interview