Middle
Quando um núcleo físico executa dois threads, isso acontecerá de forma síncrona ou paralela?
sobes.tech IA
Resposta da IA
Isto ocorrerá de forma síncrona em termos de execução simultânea num mesmo micro momento. Um recurso físico (núcleo) não pode executar duas tarefas completamente em paralelo.
O sistema operativo Android usa multitarefa preemptiva. O núcleo alterna entre threads, atribuindo a cada um pequenos intervalos de tempo. Isto cria a ilusão de paralelismo (concorrência).
// Exemplo: multitarefa preemptiva
fun main() {
val thread1 = Thread {
for (i in 1..5) {
println("Thread 1: $i")
Thread.sleep(10) // Simulação de trabalho
}
}
val thread2 = Thread {
for (i in 1..5) {
println("Thread 2: $i")
Thread.sleep(10) // Simulação de trabalho
}
}
thread1.start()
thread2.start()
}
No exemplo acima, vemos que a saída das linhas de ambos os threads alterna, o que demonstra a troca de contexto entre eles.
Conceitos:
- Paralelismo: Execução simultânea de várias tarefas num mesmo momento em múltiplos CPUs ou núcleos físicos.
- Síncrono / Concorrência: Execução de várias tarefas ao longo de um período de tempo, quando o processador muda rapidamente entre tarefas, criando a ilusão de execução simultânea.
Assim, num único núcleo, ocorre execução síncrona (concorrente) de múltiplos threads através da troca de contexto.