Είναι το Ruby με μονή κλωστή;
Είναι το Ruby με μονή κλωστή;

Βίντεο: Είναι το Ruby με μονή κλωστή;

Βίντεο: Είναι το Ruby με μονή κλωστή;
Βίντεο: Πώς Να Φτιάξω Τον Κυβο Του Ρούμπικ? Τρελό Κολπο 2024, Νοέμβριος
Anonim

Η σύντομη απάντηση είναι ναι, είναι μονόκλωστο . Η μακρά απάντηση είναι ότι εξαρτάται. Ο JRuby είναι πολυνηματική και μπορεί να εκτελεστεί σε Tomcat όπως άλλοι κώδικας java. MRI (προεπιλογή ρουμπίνι ) και η Python έχουν και οι δύο GIL (Global Interpreter Lock) και είναι έτσι μονόκλωστο.

Με αυτόν τον τρόπο, το Ruby on Rails είναι μονόκλωστο;

Ως αποτέλεσμα, Eventhough Ράγες η ίδια είναι Νήμα -ασφαλές από την έκδοση 2.2, δεν υπάρχει ακόμα καλό multi- με σπείρωμα διακομιστή για αυτό σε διακομιστές Windows. Και έχετε τα καλύτερα αποτελέσματα εκτελώντας το σε διακομιστές *nix χρησιμοποιώντας multi-process/ μονόκλινο - με σπείρωμα μοντέλο συγχρονισμού. Ράγες ως πλαίσιο είναι Νήμα -ασφαλής. Λοιπόν, η απάντηση είναι ναι!

Στη συνέχεια, το ερώτημα είναι γιατί η Python είναι single threaded; Αυτό το κλείδωμα αποτρέπει την εκτέλεση πολλαπλών νημάτων ταυτόχρονα στο Πύθων διερμηνέας. Καθε Νήμα που θέλει να τρέξει πρέπει να περιμένει την απελευθέρωση του GIL από τον άλλο Νήμα , που σημαίνει ότι η πολυ- με σπείρωμα Python εφαρμογή είναι στην πραγματικότητα μονόκλωστο.

Ρωτήθηκε επίσης, είναι η Ruby πολλαπλών νημάτων;

ΕΝΑ πολυνηματική το πρόγραμμα έχει περισσότερα από ένα Νήμα της εκτέλεσης. Ρουμπίνι διευκολύνει τη γραφή πολυ - με σπείρωμα προγράμματα με το Νήμα τάξη. Ρουμπίνια νήματα είναι ένας ελαφρύς και αποτελεσματικός τρόπος για να επιτύχετε συγχρονισμό στον κώδικά σας.

Η Ruby έχει Gil;

The Global Interpreter Lock MRI έχει μια παγκόσμια κλειδαριά διερμηνέα, που συχνά ονομάζεται GIL , και έχοντας Η κατανόησή του σε υψηλό επίπεδο είναι σημαντική για την κατανόηση του τρόπου με τον οποίο γράφουμε κώδικα πολλαπλών νημάτων Ρουμπίνι . Βασικά το GIL αποτρέπει την πολλαπλή Ρουμπίνι νήματα από την ταυτόχρονη εκτέλεση.

Συνιστάται: