Είναι το Ruby on Rails πολλαπλών νημάτων;
Είναι το Ruby on Rails πολλαπλών νημάτων;

Βίντεο: Είναι το Ruby on Rails πολλαπλών νημάτων;

Βίντεο: Είναι το Ruby on Rails πολλαπλών νημάτων;
Βίντεο: What Is Ruby On Rails? | Ruby On Rails For Beginners | Ruby Programming Language | Simplilearn 2024, Νοέμβριος
Anonim

Το Phusion Passenger χρησιμοποιεί ταυτόχρονη βάση διαδικασίας για να χειριστεί μερικά αιτήματα ταυτόχρονα, επομένως, αυστηρά μιλώντας, δεν είναι " πολυνηματική , " αλλά εξακολουθεί να είναι ταυτόχρονη. Αυτή η συζήτηση από Ρουμπίνι Το MidWest 2011 έχει μερικές καλές σκέψεις για την απόκτηση πολλαπλών νημάτων Ruby on Rails μετάβαση.

Με αυτόν τον τρόπο, η Ruby υποστηρίζει τη λειτουργία πολλαπλών νημάτων;

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

Δεύτερον, είναι η Ruby ταυτόχρονη; Συγκεκριμένα, Ruby concurrency είναι όταν δύο εργασίες μπορούν να ξεκινήσουν, να εκτελεστούν και να ολοκληρωθούν σε επικαλυπτόμενες χρονικές περιόδους. Ωστόσο, δεν σημαίνει απαραίτητα ότι θα εκτελούνται και τα δύο την ίδια στιγμή (π.χ. πολλαπλά νήματα σε μια μηχανή ενός πυρήνα).

Ομοίως, είναι το Ruby με μονή κλωστή;

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

Η Ruby έχει Gil;

MRI έχει κάτι που ονομάζεται καθολική κλειδαριά διερμηνέα ( GIL ). Είναι μια κλειδαριά γύρω από την εκτέλεση του Ρουμπίνι κώδικας. Αυτό σημαίνει ότι σε ένα περιβάλλον πολλαπλών νημάτων, μόνο ένα νήμα μπορεί να εκτελεστεί Ρουμπίνι κωδικός ανά πάσα στιγμή. ο GIL υπάρχει για να προστατεύει Ρουμπίνι εσωτερικά στοιχεία από συνθήκες αγώνα που θα μπορούσαν να καταστρέψουν δεδομένα.

Συνιστάται: