Ali je Ruby on Rails večniten?
Ali je Ruby on Rails večniten?
Anonim

Phusion Passenger uporablja sočasno, ki temelji na procesih, za sočasno obravnavo nekaj zahtev, tako da, strogo gledano, ni " večnitno , ", vendar je še vedno hkraten. Ta pogovor iz Ruby MidWest 2011 ima nekaj dobrih misli o pridobitvi večnitni Ruby on Rails gredo.

Ali na ta način Ruby podpira večnitno delovanje?

A večnitno program ima več kot eno nit izvajanja. Ruby omogoča enostavno pisanje večnitnih programov z razredom Thread. Ruby niti so lahek in učinkovit način za doseganje sočasnosti v vaši kodi.

Drugič, ali je Ruby sočasno? Še posebej, Ruby vzporednost je, ko se lahko dve nalogi začneta, izvajata in dokončata v prekrivajočih se časovnih obdobjih. Vendar to ne pomeni nujno, da se bosta oba izvajala v istem trenutku (npr. več niti na enojedrnem stroju).

Prav tako je Ruby enonavojen?

Kratek odgovor je da, so enojni navoj . Dolg odgovor je, da je odvisno. JRuby je večnitno in se lahko izvaja v tomcatu kot druga koda Java. MRI (privzeto rubin ) in Python imata GIL (Global Interpreter Lock) in sta tako enojni navoj.

Ali ima Ruby Gil?

MRI ima nekaj, kar se imenuje globalno zaklepanje tolmača ( GIL ). To je zaklepanje okoli izvedbe Ruby Koda. To pomeni, da se v večnitnem kontekstu lahko izvaja samo ena nit Ruby kodo kadar koli. The GIL obstaja za zaščito Ruby notranjih elementov zaradi pogojev dirke, ki bi lahko poškodovali podatke.

Priporočena: