Use la función de suspensión de Kotlin para suspender la ejecución de un subproceso
-
Uso de la función
Thread.Sleep()
de Kotlin -
Uso de la función
TimeUnit
Sleep()
de Kotlin -
Uso de la función
Delay()
de Kotlin
Java tiene una función esperar ()
que detiene la ejecución del hilo actual. El subproceso duerme hasta que entra otro subproceso y notifica al subproceso durmiente.
Pero, ¿hay un equivalente disponible en Kotlin? Kotlin no tiene la función wait()
, pero tiene la función sleep()
.
La función sleep()
de Kotlin suspende la ejecución de una rutina en particular. Si bien esto no detiene la ejecución, permite la ejecución de otras rutinas.
Este artículo enseña cómo usar la función sleep()
en Kotlin. Además de eso, también aprenderemos otra forma de suspender una rutina usando la función delay()
.
Uso de la función Thread.Sleep()
de Kotlin
Podemos usar la función Thread.sleep()
para hacer que una corrutina se duerma y permitir que se ejecuten otras corrutinas independientes.
La sintaxis para usar la función sleep()
es:
Thread.sleep(milliseconds)
Aquí hay un ejemplo donde usamos la función sleep()
de Kotlin para suspender la ejecución de una rutina por 3 segundos.
fun main() {
println("Suspending execution")
try {
// making the coroutine sleep for 3 seconds
Thread.sleep(3000)
} catch (e: InterruptedException) {
e.printStackTrace()
}
println("Resuming execution")
}
Producción:
Uso de la función TimeUnit
Sleep()
de Kotlin
Al igual que Thread.sleep()
, también podemos usar TimeUnit
para suspender la ejecución de un hilo.
Mientras que la técnica Thread
solo acepta el número de milisegundos como entrada, TimeUnit
acepta 7 unidades de tiempo diferentes. Estas 7 unidades de tiempo son:
- Nanosegundos
- Microsegundos
- Milisegundos
- Segundos
- minutos
- horas
- días
La TimeUnit
convierte automáticamente el valor pasado en milisegundos, que acepta la función sleep()
.
Los métodos TimeUnit
forman parte de la biblioteca java.util.concurrent
. Por lo tanto, necesitamos importar la biblioteca concurrente
para usar este método.
Aquí hay un ejemplo que demuestra la función sleep()
de Kotlin desde TimeUnit
.
import java.util.concurrent.TimeUnit
fun main() {
println("Suspending execution")
try {
// // making the coroutine sleep for 3 seconds
TimeUnit.SECONDS.sleep(3)
} catch (e: InterruptedException) {
e.printStackTrace()
}
println("Resuming execution")
}
Producción:
Uso de la función Delay()
de Kotlin
Además de la función sleep()
de Kotlin, también podemos usar la función delay()
para suspender la ejecución de una rutina. La función delay()
también acepta milisegundos como entrada.
Aquí hay un ejemplo para mostrar el uso de la función delay()
de Kotlin.
import kotlinx.coroutines.*
fun main() = runBlocking {
launch { // launches a new coroutine
delay(2000L) // This delays the execution by 2 seconds allowing other coroutines to run independently
println("welcome!") // This will be printed after the delay
}
print("Hi and ") // This will be printed first since the other coroutine is delayed
}
Producción:
Kailash Vaviya is a freelance writer who started writing in 2019 and has never stopped since then as he fell in love with it. He has a soft corner for technology and likes to read, learn, and write about it. His content is focused on providing information to help build a brand presence and gain engagement.
LinkedIn