Существуют несколько распространенных способов:
Использование контекста (Context): Рекомендуемый подход для отмены операций в древовидной структуре вызовов. Контекст может передавать сигнал отмены через канал.
go
Использование каналов: Отправив сигнал (например, пустую структуру struct{}) по специальному каналу, можно сообщить горутине о необходимости завершения.
go
Using sync.WaitGroup (для ожидания завершения, а не для сигнализации): WaitGroup используется для ожидания завершения группы горутин, но сам по себе не предоставляет механизма остановки. Его часто применяют в сочетании с контекстом или каналами.
go
Выбор методаDepends on the specific use case and the complexity of the goroutine interactions. Context is generally preferred for cascading cancellations.