Sobes.tech
Middle

Όταν ένα φυσικό πυρήνα εκτελεί δύο νήματα, αυτό θα συμβεί συγχρονικά ή παράλληλα;

sobes.tech AI

Απάντηση από AI

Αυτό θα συμβεί συγχρονικά όσον αφορά την ταυτόχρονη εκτέλεση σε μια ίδια μικρο-στιγμή. Ένας φυσικός πόρος (πυρήνας) δεν μπορεί να εκτελέσει δύο εργασίες πλήρως παράλληλα.

Το λειτουργικό σύστημα Android χρησιμοποιεί προληπτικό πολυδιεργασμό. Ο πυρήνας εναλλάσσεται μεταξύ των νημάτων, αποδίδοντας σε καθένα μικρά χρονικά διαστήματα. Αυτό δημιουργεί την ψευδαίσθηση παράλληλης εκτέλεσης (ανταγωνιστικότητας).

// Παράδειγμα: προληπτικός πολυδιεργασμός
fun main() {
    val thread1 = Thread {
        for (i in 1..5) {
            println("Νήμα 1: $i")
            Thread.sleep(10) // Εικονική εργασία
        }
    }

    val thread2 = Thread {
        for (i in 1..5) {
            println("Νήμα 2: $i")
            Thread.sleep(10) // Εικονική εργασία
        }
    }

    thread1.start()
    thread2.start()
}

Στο παραπάνω παράδειγμα, βλέπουμε ότι η έξοδος των γραμμών και των δύο νημάτων εναλλάσσεται, δείχνοντας την αλλαγή πλαισίου μεταξύ τους.

Έννοιες:

  • Παραλληλισμός: Ταυτόχρονη εκτέλεση πολλαπλών εργασιών σε ένα και μόνο χρόνο σε πολλούς φυσικούς επεξεργαστές ή πυρήνες.
  • Συγχρονισμός / Ανταγωνιστικότητα: Εκτέλεση πολλαπλών εργασιών σε μια χρονική περίοδο, όπου ο επεξεργαστής αλλάζει γρήγορα μεταξύ των εργασιών, δημιουργώντας την ψευδαίσθηση ταυτόχρονης εκτέλεσης.

Έτσι, σε έναν πυρήνα, πραγματοποιείται συγχρονισμένη (ανταγωνιστική) εκτέλεση πολλαπλών νημάτων μέσω αλλαγής πλαισίου.