Sobes.tech
Junior — Middle

Ինչպե՞ս կարող եք սահմանել ժամանակային սահմանափակում ձեր նախագծում գտնվող կորուտինների համար։

sobes.tech AI

Պատասխան AI-ից

Կոտլինում coroutine-ների գործարկման ժամանակը սահմանափակելու համար կարող եք օգտագործել withTimeout կամ withTimeoutOrNull ֆունկցիաները kotlinx.coroutines գրադարանի։ Դրանք թույլ են տալիս սահմանել առավելագույն ժամանակ, որը կպահանջվի կոդի բլոկի գործարկման համար, և եթե coroutine-ը չավարտվի այդ ժամանակում, կբացառվի TimeoutCancellationException կամ վերադարձվի null։

Օրինակ՝

import kotlinx.coroutines.*

fun main() = runBlocking {
    try {
        withTimeout(1000L) { // սահմանափակում 1000 միլիսեկունդ
            repeat(5) { i ->
                println("Իտերացիա $i")
                delay(300L) // աշխատանքային սիմուլացիա
            }
        }
    } catch (e: TimeoutCancellationException) {
        println("Աշխատանքի ժամանակը սպառվեց")
    }
}

Այս կերպ դուք կարող եք վերահսկել coroutine-ների տևողությունը և կանխել կախվածությունը կամ շատ երկար գործողությունները։