Middle
Keď jedno fyzické jadro vykonáva dva vlákna, bude to prebiehať synchronne alebo paralelne?
sobes.tech AI
Odpoveď od AI
Toto sa bude diať synchronne z hľadiska súčasného vykonávania v tom istom mikro-momente. Fyzický zdroj (jadro) nemôže vykonávať dve úlohy úplne paralelne.
Operačný systém Android používa predbežný multitasking. Jadro prepína medzi vláknami a každému prideľuje malé časové kvantá. To vytvára ilúziu paralelnosti (konkurencie).
// Príklad: predbežný multitasking
fun main() {
val thread1 = Thread {
for (i in 1..5) {
println("Vlákn 1: $i")
Thread.sleep(10) // Simulácia práce
}
}
val thread2 = Thread {
for (i in 1..5) {
println("Vlákn 2: $i")
Thread.sleep(10) // Simulácia práce
}
}
thread1.start()
thread2.start()
}
V príklade vyššie vidíme, že výstup riadkov oboch vlákien sa strieda, čo demonštruje prepínanie kontextu medzi nimi.
Koncepty:
- Paralelizmus: súčasné vykonávanie viacerých úloh v tom istom momente na viacerých fyzických CPU alebo jadrách.
- Synchronné / Konkurenčné: vykonávanie viacerých úloh po určitom časovom období, keď procesor rýchlo prepína medzi úlohami, čím vytvára ilúziu ich súčasného vykonávania.
Takže na jednom jadre dochádza ku synchronnému (konkurentnému) vykonávaniu viacerých vlákien prostredníctvom prepínania kontextu.