Junior — Middle
Πώς μπορεί να οριστεί περιορισμός χρόνου εκτέλεσης για τις κορουτίνες στο έργο σας;
sobes.tech AI
Απάντηση από AI
Για τον περιορισμό του χρόνου εκτέλεσης των coroutine στο Kotlin, μπορείτε να χρησιμοποιήσετε τις συναρτήσεις 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 και να αποτρέψετε μπλοκαρίσματα ή πολύ μακρές λειτουργίες.