არის თუ არა Ruby on Rails მრავალძაფიანი?
არის თუ არა Ruby on Rails მრავალძაფიანი?

ვიდეო: არის თუ არა Ruby on Rails მრავალძაფიანი?

ვიდეო: არის თუ არა Ruby on Rails მრავალძაფიანი?
ვიდეო: Threads in Ruby 2024, დეკემბერი
Anonim

Phusion Passenger იყენებს პროცესზე დაფუძნებულ კონკურენტულობას რამდენიმე მოთხოვნის ერთდროულად დასამუშავებლად, ასე რომ, მკაცრად რომ ვთქვათ, არ არის " მრავალძაფიანი ", მაგრამ მაინც პარალელურია. ეს საუბარი რუბი MidWest 2011-ს აქვს კარგი აზრები მიღების შესახებ მრავალძაფი Ruby on Rails მიდის.

ამგვარად, რუბი მხარს უჭერს მრავალნაკადს?

ა მრავალძაფიანი პროგრამას აქვს ერთზე მეტი შესრულების თემა. რუბი აადვილებს მრავალნაკადიანი პროგრამების დაწერას Thread კლასით. რუბი ძაფები არის მსუბუქი და ეფექტური გზა თქვენს კოდში თანხვედრის მისაღწევად.

მეორეც, რუბი თანადროულია? Კერძოდ, რუბის კონკურენტულობა არის ის, როდესაც ორი დავალების დაწყება, შესრულება და დასრულება შესაძლებელია გადახურვის პერიოდებში. თუმცა, ეს სულაც არ ნიშნავს იმას, რომ ისინი ორივე ერთსა და იმავე მომენტში იმუშავებენ (მაგ., რამდენიმე ძაფი ერთ ბირთვიან მანქანაზე).

ანალოგიურად, არის თუ არა Ruby ერთი ძაფიანი?

მოკლე პასუხი არის დიახ, ისინი არიან ერთი ხრახნიანი . გრძელი პასუხი არის ეს დამოკიდებულია. ჯრუბი არის მრავალძაფიანი და შეიძლება გაშვებული იყოს Tomcat-ში, ისევე როგორც სხვა ჯავა კოდი. MRI (ნაგულისხმევი ლალი ) და პითონს ორივეს აქვს GIL (გლობალური თარჯიმნის საკეტი) და ამდენად ერთი ხრახნიანი.

რუბის აქვს გილი?

MRI აქვს რაღაც სახელწოდებით გლობალური თარჯიმანი დაბლოკვა ( GIL ). ეს არის საკეტი შესრულების გარშემო რუბი კოდი. ეს ნიშნავს, რომ მრავალ ხრახნიან კონტექსტში მხოლოდ ერთი ძაფის შესრულება შეიძლება რუბი კოდი ნებისმიერ დროს. The GIL არსებობს დასაცავად რუბი რასის პირობების შიდა ელემენტები, რომლებმაც შეიძლება დაარღვიონ მონაცემები.

გირჩევთ: