Junior — Middle
Как горутината разбира, че й е изпратен сигнал за завършване чрез контекста?
sobes.tech AI
Отговор от AI
Горутината получава сигнал за завършване чрез контекст с помощта на канал, който предоставя обекта context.Context. Обикновено се използва методът Done(), който връща канал, който се затваря при отменяне на контекста. Горутината може да слуша този канал в цикъл или select и да реагира на неговото затваряне, което означава сигнал за завършване или отменяне на операцията.
Пример:
ctx, cancel := context.WithCancel(context.Background())
go func() {
select {
case <-ctx.Done():
// Контекстът е отменен, приключваме
fmt.Println("Горутината е завършена")
return
// други случаи
}
}()
// по-късно извикваме cancel(), за да сигнализираме за завършване
cancel()