Je Ruby on Rails viacvláknový?
Je Ruby on Rails viacvláknový?

Video: Je Ruby on Rails viacvláknový?

Video: Je Ruby on Rails viacvláknový?
Video: Threads in Ruby 2024, Smieť
Anonim

Phusion Passenger používa súbežnosť založenú na procese na spracovanie niekoľkých požiadaviek súčasne, takže, prísne vzaté, nie je „ viacvláknové , ale stále prebieha súbežne. Tento rozhovor od Ruby MidWest 2011 má niekoľko dobrých nápadov na získanie viacvláknové Ruby on Rails ísť.

Podporuje Ruby týmto spôsobom multithreading?

A viacvláknové program má viac ako jedno vlákno vykonávania. Ruby uľahčuje písanie viacvláknových programov pomocou triedy Thread. Ruby vlákna predstavujú ľahký a efektívny spôsob, ako dosiahnuť súbežnosť vo vašom kóde.

Po druhé, je Ruby súbežná? najmä Rubínová súbežnosť je, keď sa dve úlohy môžu spustiť, spustiť a dokončiť v prekrývajúcich sa časových obdobiach. Nemusí to však nevyhnutne znamenať, že budú niekedy spustené v rovnakom okamihu (napr. viaceré vlákna na jednom jadre).

Podobne je Ruby s jedným závitom?

Krátka odpoveď je áno, sú s jedným závitom . Dlhá odpoveď je, že záleží. JRuby je viacvláknové a dá sa spustiť v tomcat ako iný java kód. MRI (predvolené rubín ) a Python majú GIL (Global Interpreter Lock) a sú teda s jedným závitom.

Má Ruby Gila?

MRI má niečo, čo sa nazýva globálny zámok interpreta ( GIL ). Je to zámok okolo popravy Ruby kód. To znamená, že vo viacvláknovom kontexte sa môže spustiť iba jedno vlákno Ruby kód kedykoľvek. The GIL existuje na ochranu Ruby interné prvky z rasových podmienok, ktoré by mohli poškodiť údaje.

Odporúča: