Je Ruby on Rails vícevláknový?
Je Ruby on Rails vícevláknový?

Video: Je Ruby on Rails vícevláknový?

Video: Je Ruby on Rails vícevláknový?
Video: Threads in Ruby 2024, Smět
Anonim

Phusion Passenger používá souběžnost založenou na procesech ke zpracování několika požadavků současně, takže, přísně vzato, není vícevláknové “, ale je stále souběžný Rubín MidWest 2011 má několik dobrých nápadů na získání vícevláknové Ruby on Rails jít.

Podporuje Ruby tímto způsobem multithreading?

A vícevláknové program má více než jedno vlákno provádění. Rubín usnadňuje psaní vícevláknových programů pomocí třídy Thread. Rubín vlákna představují lehký a efektivní způsob, jak dosáhnout souběžnosti ve vašem kódu.

Za druhé, je Ruby souběžná? Zejména, Rubínová souběžnost je, když se dva úkoly mohou spustit, spustit a dokončit v překrývajících se časových obdobích. Nemusí to však nutně znamenat, že budou někdy obě spuštěny ve stejný okamžik (např. více vláken na jednojádrovém počítači).

Stejně tak je Ruby jednovláknový?

Krátká odpověď je ano, jsou s jedním závitem . Dlouhá odpověď je, že záleží. JRuby je vícevláknové a lze jej spustit v tomcat jako jiný kód Java. MRI (výchozí rubín ) a Python mají GIL (Global Interpreter Lock) a jsou tedy s jedním závitem.

Má Ruby Gila?

MRI má něco, čemu se říká globální zámek interpretu ( GIL ). Je to zámek kolem provádění Rubín kód. To znamená, že v kontextu s více vlákny lze spustit pouze jedno vlákno Rubín kód kdykoli. The GIL existuje, aby chránil Rubín vnitřní části z podmínek závodu, které by mohly poškodit data.

Doporučuje: