Είναι η Python καλή για συγχρονισμό;
Είναι η Python καλή για συγχρονισμό;

Βίντεο: Είναι η Python καλή για συγχρονισμό;

Βίντεο: Είναι η Python καλή για συγχρονισμό;
Βίντεο: Python, Γιατί είναι η Καλύτερη Γλώσσα Προγραμματισμού 2024, Απρίλιος
Anonim

Πύθων δεν είναι πολύ Καλός για CPU ταυτόχρονος προγραμματισμός. Το GIL (σε πολλές περιπτώσεις) θα κάνει το πρόγραμμά σας να τρέχει σαν να εκτελείται σε έναν μόνο πυρήνα - ή ακόμα χειρότερα. Εάν η αίτησή σας είναι I/O-bound, Πύθων μπορεί να είναι μια σοβαρή λύση, καθώς το GIL κανονικά απελευθερώνεται κατά τον αποκλεισμό κλήσεων.

Επίσης, πρέπει να ξέρετε ότι η Python υποστηρίζει τη συγχρονικότητα;

Η Python κάνει έχουν ενσωματωμένες βιβλιοθήκες για τις πιο συνηθισμένες ταυτόχρονος προγραμματιστικές κατασκευές - πολυεπεξεργασία και πολυνηματική. Ο λόγος είναι, το multithreading in Πύθων δεν είναι πραγματικά multithreading, λόγω του GIL in Πύθων.

Κάποιος μπορεί επίσης να ρωτήσει, γιατί το multithreading δεν είναι δυνατό στον python; Ο διερμηνέας CPython (για καθαρά Πύθων code) θα αναγκάσει το GIL να απελευθερώνεται κάθε εκατό byte οδηγίες κώδικα. Απλώς επιτρέπει μόνο σε ένα νήμα να τρέχει ταυτόχρονα μέσα στον διερμηνέα. Τόσο πολυεπεξεργασία όχι πολυνηματική θα σας επιτρέψει να επιτύχετε αληθινή ταυτόχρονη.

Στη συνέχεια, το ερώτημα είναι, είναι η Python καλή για multithreading;

Πύθων δεν επιτρέπει πολλαπλών νημάτων με την πιο αληθινή έννοια της λέξης. Εχει ένα πολλαπλών νημάτων πακέτο αλλά αν θέλετε πολλαπλών νημάτων για να επιταχύνετε τον κώδικά σας, τότε συνήθως δεν είναι α Καλός ιδέα να το χρησιμοποιήσετε. Πύθων έχει μια κατασκευή που ονομάζεται Global Interpreter Lock (GIL).

Ποια λειτουργική μονάδα μπορεί να χρησιμοποιηθεί για την υλοποίηση της ταυτόχρονης εφαρμογής στην Python 3;

ο ταυτόχρονος . συμβόλαια μελλοντικής εκπλήρωσης μονάδα μέτρησης προστέθηκε Πύθων 3.2. Σύμφωνα με την Πύθων τεκμηρίωση παρέχει στον προγραμματιστή μια διεπαφή υψηλού επιπέδου για την ασύγχρονη εκτέλεση καλούμενων.

Συνιστάται: