Utilizando tiempo
Sin hilos
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
import kotlin.system.measureTimeMillis import java.util.concurrent.TimeUnit fun descargarArchivo(nombre: String, duracion: Long) { println("Iniciando descarga de $nombre...") TimeUnit.SECONDS.sleep(duracion) // Simula el tiempo de descarga println("$nombre descargado en $duracion segundos.") } fun ejecutarSinHilos() { val tiempoTotal = measureTimeMillis { descargarArchivo("Archivo 1", 2) descargarArchivo("Archivo 2", 2) descargarArchivo("Archivo 3", 2) } println("Tiempo total sin hilos: ${tiempoTotal / 1000.0} segundos") } // Ejecutar la función sin hilos ejecutarSinHilos() |
Con hilos
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
import kotlin.system.measureTimeMillis import java.util.concurrent.TimeUnit fun descargarArchivo(nombre: String, duracion: Long) { println("Iniciando descarga de $nombre...") TimeUnit.SECONDS.sleep(duracion) // Simula el tiempo de descarga println("$nombre descargado en $duracion segundos.") } fun ejecutarConHilos() { val tiempoTotal = measureTimeMillis { val hilos = listOf( Thread { descargarArchivo("Archivo 1", 2) }, Thread { descargarArchivo("Archivo 2", 2) }, Thread { descargarArchivo("Archivo 3", 2) } ) // Iniciar los hilos hilos.forEach { it.start() } // Esperar que todos los hilos terminen hilos.forEach { it.join() } } println("Tiempo total con hilos: ${tiempoTotal / 1000.0} segundos") } // Ejecutar la función con hilos ejecutarConHilos() |
Realizando tareas sin tiempo
Sin hilos
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
import kotlin.system.measureTimeMillis fun descargarArchivo(nombre: String) { println("Iniciando descarga de $nombre...") // Aquí puedes poner una operación real en lugar de simular el tiempo con sleep for (i in 1..1_000_000) { /* Operación de ejemplo */ } println("$nombre descargado.") } fun ejecutarSinHilos() { val tiempoTotal = measureTimeMillis { descargarArchivo("Archivo 1") descargarArchivo("Archivo 2") descargarArchivo("Archivo 3") } println("Tiempo total sin hilos: ${tiempoTotal / 1000.0} segundos") } // Ejecutar la función sin hilos ejecutarSinHilos() |
Con hilos
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
import kotlin.system.measureTimeMillis fun descargarArchivo(nombre: String) { println("Iniciando descarga de $nombre...") // Aquí puedes poner una operación real en lugar de simular el tiempo con sleep for (i in 1..1_000_000) { /* Operación de ejemplo */ } println("$nombre descargado.") } fun ejecutarConHilos() { val tiempoTotal = measureTimeMillis { val hilos = listOf( Thread { descargarArchivo("Archivo 1") }, Thread { descargarArchivo("Archivo 2") }, Thread { descargarArchivo("Archivo 3") } ) // Iniciar los hilos hilos.forEach { it.start() } // Esperar que todos los hilos terminen hilos.forEach { it.join() } } println("Tiempo total con hilos: ${tiempoTotal / 1000.0} segundos") } // Ejecutar la función con hilos ejecutarConHilos() |