Junior — Middle
Горутина контекст аркылуу анын иштөөсү токтотулганын кантип тааныйт?
sobes.tech AI
AIден жооп
Go'да goroutine тоқтатылуын context (context.Context) арқылы Done()` арнасы көмегімен таниды, ол тоқтатылған кезде жабылады.
Тоқтатумен контекст (context.WithCancel немесе context.WithTimeout) жасалған кезде, goroutine ctx.Done() арнасын тыңдай алады:
ctx, cancel := context.WithCancel(context.Background())
// Goroutine'ду ишке киргизүү
go func() {
select {
case <-ctx.Done():
// Контекст токтотулду, ишти аяктоо керек
fmt.Println("Goroutine токтотулду")
return
default:
// Негизги ишти аткарыңыз
}
}()
// Контекстти токтотуу
cancel()
Ушул жол менен, goroutine токтотуу жөнүндө Done() арнасын текшерип, туура ишин аяктай алат.