A Ruby on Rails többszálú?
A Ruby on Rails többszálú?

Videó: A Ruby on Rails többszálú?

Videó: A Ruby on Rails többszálú?
Videó: Lénárd Gábor: Boldogok, akik Ruby on Railsben programoznak 2024, November
Anonim

A Phusion Passenger folyamat alapú párhuzamosságot használ néhány kérés egyidejű kezelésére, tehát szigorúan véve nem " többszálú , " de még mindig egyidejű. Ez a beszélgetés innen: Rubin A 2011-es MidWestnek van néhány jó gondolata a beszerzésről többszálú Ruby on Rails haladó.

Ilyen módon a Ruby támogatja a többszálas működést?

A többszálú a programnak egynél több végrehajtási szála van. Rubin megkönnyíti a többszálú programok írását a Thread osztállyal. Rubin A szálak könnyű és hatékony módja annak, hogy a kódban párhuzamosság érhető el.

Másodszor, Ruby egyidejű? Különösen, Rubin egyidejűség az az időszak, amikor két feladat egymást átfedő időszakokban indulhat el, futhat le és fejeződik be. Ez azonban nem feltétlenül jelenti azt, hogy mindketten ugyanabban a pillanatban fognak futni (pl. több szál egy egymagos gépen).

Hasonlóképpen, a Ruby egyszálas?

A rövid válasz: igen, igen egymenetes . A hosszú válasz az, hogy attól függ. JRuby az többszálú és futtatható a tomcatben, mint a többi java kód. MRI (alapértelmezett rubin ) és a Python is rendelkezik GIL-lel (Global Interpreter Lock), és így van egymenetes.

Rubynak van Gil-je?

MRI van valami úgynevezett globális tolmácszár ( GIL ). Ez egy zár a végrehajtás körül Rubin kód. Ez azt jelenti, hogy többszálú környezetben csak egy szál futhat Rubin kódot bármikor. Az GIL védelmére létezik Rubin versenyfeltételekből származó belsők, amelyek megsérthetik az adatokat.

Ajánlott: