Многонишков ли е Ruby on Rails?
Многонишков ли е Ruby on Rails?

Видео: Многонишков ли е Ruby on Rails?

Видео: Многонишков ли е Ruby on Rails?
Видео: Рефакторинг: шаблон проектирования Singleton [Design Patterns] 2024, Ноември
Anonim

Phusion Passenger използва едновременно базиран процес, за да обработва няколко заявки едновременно, така че, строго погледнато, не е " многонишков , "но все още е едновременно. Тази беседа от Руби MidWest 2011 има някои добри мисли за получаване многонишков Ruby on Rails отивам.

По този начин Ruby поддържа ли многонишковост?

А многонишков програмата има повече от една нишка на изпълнение. Руби улеснява писането на многонишкови програми с класа Thread. Руби нишките са лек и ефективен начин за постигане на едновременност във вашия код.

Второ, Ruby е едновременен? В частност, Ruby паралелност е, когато две задачи могат да стартират, изпълняват и завършват в припокриващи се периоди от време. Това обаче не означава непременно, че и двете ще работят в един и същи момент (например множество нишки на едноядрена машина).

По същия начин, Ruby еднонишков ли е?

Краткият отговор е да, те са единична резба . Дългият отговор е, че зависи. JRuby е многонишков и може да се изпълнява в tomcat като друг java код. ЯМР (по подразбиране рубин ) и Python имат GIL (Global Interpreter Lock) и по този начин са единична резба.

Руби има ли Гил?

ЯМР има нещо, наречено глобално заключване на интерпретатора ( GIL ). Това е заключване около изпълнението на Руби код. Това означава, че в многонишков контекст може да се изпълнява само една нишка Руби код по всяко време. В GIL съществува, за да защитава Руби вътрешни елементи от състезателни условия, които биха могли да повредят данните.

Препоръчано: