Sobes.tech
Junior — Middle

Чӣ гуна иҷро кардани мӯҳлати вақти контекст дар барномаи шумо дар Go?

sobes.tech AI

Ҷавоб аз AI

Дар Go, барои татбиқи мӯҳлати вақти контекст, пакет context истифода мешавад. Контекст бо мӯҳлати вақт тавассути функсияи context.WithTimeout эҷод мешавад, ки як контексти нав ва функсияи бекориро бармегардонад.

Масалан:

ctx, cancel := context.WithTimeout(context.Background(), 2*time.Second)
defer cancel()

select {
case <-time.After(3 * time.Second):
    fmt.Println("амалиёт анҷом ёфт")
case <-ctx.Done():
    fmt.Println("мӯҳлати вақт ё бекор кардани контекст:", ctx.Err())
}

Дар ин мисол, агар амалиёт аз 2 сония зиёдтар давом кунад, контекст бекор мешавад ва мӯҳлати вақт метавонад идора карда шавад. Ин барои маҳдуд кардани вақти иҷрои функсияҳо, дархостҳо ва ғайра муфид аст.