האם Ruby on Rails מרובת חוטים?
האם Ruby on Rails מרובת חוטים?

וִידֵאוֹ: האם Ruby on Rails מרובת חוטים?

וִידֵאוֹ: האם Ruby on Rails מרובת חוטים?
וִידֵאוֹ: Threads in Ruby 2024, נוֹבֶמבֶּר
Anonim

Phusion Passenger משתמש במקביליות מבוססת תהליכים כדי לטפל בכמה בקשות בו-זמנית, ולכן, למהדרין, אינו " רב חוטים ," אבל עדיין מקביל. הדיבור הזה מ אוֹדֶם ל-MidWest 2011 יש כמה מחשבות טובות לגבי השגת רובי על מסילות מרובי חוטים הולך.

באופן זה, האם רובי תומך בריבוי הליכים?

א רב חוטים לתוכנית יש יותר מחוט ביצוע אחד. אוֹדֶם מקל על כתיבת תוכניות מרובות חוטים עם המחלקה Thread. אוֹדֶם שרשורים הם דרך קלת משקל ויעילה להשיג במקביליות בקוד שלך.

שנית, האם רובי מקביל? באופן מיוחד, מקיפות רובי הוא כאשר שתי משימות יכולות להתחיל, לרוץ ולהשלים בתקופות זמן חופפות. עם זאת, זה לא בהכרח אומר ששניהם אי פעם יפעלו באותו רגע (למשל, מספר שרשורים במכונה בעלת ליבה אחת).

באופן דומה, האם רובי חוט יחיד?

התשובה הקצרה היא כן, הם כן חוט בודד . התשובה הארוכה היא שזה תלוי. JRuby הוא רב חוטים וניתן להפעיל אותו ב-tomcat כמו קוד java אחר. MRI (ברירת מחדל אוֹדֶם ) ול-Python שניהם בעלי GIL (נעילת מתורגמן גלובלי) והם כך חוט בודד.

האם לרובי יש גיל?

MRI יש ל משהו שנקרא מנעול מתורגמן גלובלי ( גיל ). זה מנעול סביב הביצוע של אוֹדֶם קוד. המשמעות היא שבהקשר מרובה הליכי, רק שרשור אחד יכול להפעיל אוֹדֶם קוד בכל עת. ה גיל קיים כדי להגן אוֹדֶם פנימיים מתנאי גזע שעלולים להשחית נתונים.

מוּמלָץ: