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-ների տևողությունը և կանխել կախվածությունը կամ շատ երկար գործողությունները։