Middle
Kad viens fiziskais kodols izpilda divus pavedienus, vai tas notiks sinhroni vai paralēli?
sobes.tech AI
Atbilde no AI
Tas notiks sinhroni, ņemot vērā vienlaicīgu izpildi tajā pašā mikro-momentā. Fiziskais resurss (kodols) nevar pilnībā paralēli izpildīt divus uzdevumus.
Android operētājsistēma izmanto preemptīvu daudzuzdevumu pārvaldību. Kodols pārslēdzas starp pavedieniem, piešķirot katram nelielus laika kvantus. Tas rada ilūziju par paralēlismu (konkurenci).
// Piemērs: preemptīva daudzuzdevumu pārvaldība
fun main() {
val thread1 = Thread {
for (i in 1..5) {
println("Vads 1: $i")
Thread.sleep(10) // Darba imitācija
}
}
val thread2 = Thread {
for (i in 1..5) {
println("Vads 2: $i")
Thread.sleep(10) // Darba imitācija
}
}
thread1.start()
thread2.start()
}
Iepriekšējā piemērā redzam, ka abu pavedienu izvade mainās, kas demonstrē konteksta pārslēgšanu starp tiem.
Koncepcijas:
- Paralēlisms: vairākas uzdevumu vienlaicīgi izpildās vairākos fiziskos CPU vai kodolos.
- Sinhroni / Konkurējoši: vairākas uzdevumu izpilde noteiktā laika periodā, kad procesors ātri pārslēdzas starp uzdevumiem, radot ilūziju par to vienlaicīgu izpildi.
Tādējādi, vienā kodolā, notiek sinhrona (konkurējoša) vairākas pavedienu izpilde, izmantojot konteksta pārslēgšanu.