Sobes.tech
Junior — Middle

Чӣ гуна метавон иҷрои goroutine-ро пас аз вақти муайян қатъ кард, агар натиҷа гирифта нашуда бошад?

sobes.tech AI

Ҷавоб аз AI

Дар Go барои боздошти иҷрои goroutine пас аз гузашти вақти муайян одатан select бо таймер ё контекст бо вақти маҳдуд истифода мешавад.

Масалан бо time.After:

select {
case result := <-ch:
    // коркарди натиҷа
case <-time.After(2 * time.Second):
    // вақти тамом — натиҷа дар 2 сония гирифта нашуд
}

Масалан бо контекст:

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

select {
case result := <-ch:
    // коркарди натиҷа
case <-ctx.Done():
    // вақти тамом ё бекоркунӣ
}

Ин тариқ, агар натиҷа дар вақти лозим нарасад, иҷро кардан мумкин аст қатъ ва вақти тамомӣ идора карда шавад.