Sobes.tech
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 και να αποτρέψετε μπλοκαρίσματα ή πολύ μακρές λειτουργίες.