Middle
Cuando un núcleo físico ejecuta dos hilos, ¿esto ocurrirá de manera sincrónica o en paralelo?
sobes.tech AI
Respuesta de la IA
Esto ocurrirá de manera sincrónica en términos de ejecución simultánea en un mismo micro momento. Un recurso físico (núcleo) no puede ejecutar dos tareas completamente en paralelo.
El sistema operativo Android utiliza multitarea preemptiva. El núcleo cambia entre hilos, asignando a cada uno pequeños intervalos de tiempo. Esto crea la ilusión de paralelismo (concurrencia).
// Ejemplo: multitarea preemptiva
fun main() {
val thread1 = Thread {
for (i in 1..5) {
println("Hilo 1: $i")
Thread.sleep(10) // Simulación de trabajo
}
}
val thread2 = Thread {
for (i in 1..5) {
println("Hilo 2: $i")
Thread.sleep(10) // Simulación de trabajo
}
}
thread1.start()
thread2.start()
}
En el ejemplo anterior, vemos que la salida de las líneas de ambos hilos se alterna, lo que demuestra el cambio de contexto entre ellos.
Conceptos:
- Paralelismo: Ejecución simultánea de varias tareas en un mismo momento en múltiples CPUs o núcleos físicos.
- Síncrono / Concurrencia: Ejecución de varias tareas en un período de tiempo, cuando el procesador cambia rápidamente entre tareas, creando la ilusión de ejecución simultánea.
Por lo tanto, en un solo núcleo, se realiza una ejecución sincrónica (concurrente) de varios hilos mediante cambio de contexto.