Senior
Vai praksē esi izmantojis kontekstus? Pastāsti.
sobes.tech AI
Atbilde no AI
Jā, es regulāri izmantoju kontekstus Go valodā, īpaši, lai pārvaldītu izpildes laiku un operāciju atcelšanu tīkla pieprasījumos un gorutīnās. Konteksts ļauj pārsūtīt atcelšanas signālus un laika ierobežojumus caur izsaukumu ķēdi, kas palīdz izvairīties no gorutīnu noplūdēm un kontrolēt izpildes laiku.
Piemērs lietošanai:
ctx, cancel := context.WithTimeout(context.Background(), 2*time.Second)
defer cancel()
select {
case <-time.After(3 * time.Second):
fmt.Println("operācija pabeigta")
case <-ctx.Done():
fmt.Println("operācija atcelta vai beidzies laiks")
}
Ja operācija ilgst vairāk nekā 2 sekundes, tā tiks pārtraukta, kas uzlabo lietojumprogrammas izturību un reakcijas ātrumu.