Sobes.tech
Senior

Контекст эмне үчүн колдонулат? Практикада кандай колдондуңуз?

sobes.tech AI

AIден жооп

Go тилинде, context сигналдарды, убакыт чектерин жана башка маанилерди goroutine'лер арасында өткөрүү үчүн колдонулат, өзгөчө суроолор, убакыт чектери жана операцияларды болтурбоо менен иштегенде.

Практикалык колдонуу:

  • HTTP суроо жабылганда узак мөөнөттүү операцияларды болтурбоо.
  • Операция белгиленген убакыттан узак болбошу үчүн убакыт чегин өткөрүү.
  • Суроо идентификаторлору сыяктуу метадата маалыматтарды чакыруулар чынжыры аркылуу өткөрүү.

Колдонуу мисалы:

func handler(ctx context.Context) {
    select {
    case <-time.After(5 * time.Second):
        fmt.Println("Операция аяктады")
    case <-ctx.Done():
        fmt.Println("Операция болтурду")
    }
}

func main() {
    ctx, cancel := context.WithTimeout(context.Background(), 2*time.Second)
    defer cancel()
    handler(ctx)
}

Бул жерде операция 2 секунддан кийин үзгүлтүккө учурайт, эгер ал 5 секундга пландаштырылган болсо дагы.