Middle — Middle+
Kā var kontrolēt programmas izpildi un pārvaldīt tās stāvokli darba laikā?
sobes.tech AI
Atbilde no AI
Go valodā bieži tiek izmantots:
- Gorutinas — vieglas pavedienus, kas ļauj funkcijas izpildīt paralēli.
- Kanāli — sinhronizācijai un datu apmaiņai starp gorutīnām.
- Konteksts (context.Context) — operāciju dzīves cikla pārvaldībai, atcelšanai un termiņu nodošanai.
- sync pakotne — konkurējo piekļuves pārvaldībai resursiem (Mutex, WaitGroup utt.).
Piemērs, kā izmantot kontekstu operācijas atcelšanai:
ctx, cancel := context.WithCancel(context.Background())
go func() {
// pēc 2 sekundēm atceļam kontekstu
time.Sleep(2 * time.Second)
cancel()
}()
select {
case <-time.After(5 * time.Second):
fmt.Println("Operācija pabeigta")
case <-ctx.Done():
fmt.Println("Operācija atcelta")
}
Tādējādi programmas stāvokļa pārvaldība tiek panākta, koordinējot gorutinas, izmantojot kontekstu atcelšanai un sinhronizācijai, kā arī caur bloķēšanas un signālu mehānismiem.