Sobes.tech
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.