Onko Ruby on Rails monisäikeinen?
Onko Ruby on Rails monisäikeinen?

Video: Onko Ruby on Rails monisäikeinen?

Video: Onko Ruby on Rails monisäikeinen?
Video: Ruby on Rails by Leila Hofer 2024, Marraskuu
Anonim

Phusion Passenger käyttää prosessipohjaista samanaikaisuutta käsitelläkseen muutamia pyyntöjä samanaikaisesti, joten tarkasti ottaen se ei ole " monisäikeinen , " mutta on silti samanaikainen. Tämä keskustelu lähteestä Rubiini MidWest 2011:llä on hyviä ajatuksia saamisesta monisäikeinen Ruby on Rails menossa.

Tukeeko Ruby tällä tavalla monisäikeistystä?

A monisäikeinen Ohjelmassa on useampi kuin yksi suoritussäie. Rubiini helpottaa monisäikeisten ohjelmien kirjoittamista Thread-luokassa. Rubiini säikeet ovat kevyt ja tehokas tapa saavuttaa koodisi samanaikaisuus.

Toiseksi, onko Ruby samanaikainen? Erityisesti, Rubiinin samanaikaisuus on silloin, kun kaksi tehtävää voi alkaa, suorittaa ja valmistua päällekkäisinä ajanjaksoina. Se ei kuitenkaan välttämättä tarkoita, että ne olisivat koskaan käynnissä samassa hetkessä (esim. useita säikeitä yhden ytimen koneessa).

Samoin onko Ruby yksisäikeinen?

Lyhyt vastaus on kyllä, ne ovat yksikierteinen . Pitkä vastaus on, että se riippuu. JRuby on monisäikeinen ja voidaan ajaa tomcatissa kuten muussakin Java-koodissa. MRI (oletus rubiini ) ja Pythonilla on molemmilla GIL (Global Interpreter Lock), joten ne ovat yksikierteinen.

Onko Rubylla Gil?

MRI on jotain, jota kutsutaan globaaliksi tulkin lukitukseksi ( GIL ). Se on lukko toteuttamisen ympärillä Rubiini koodi. Tämä tarkoittaa, että monisäikeisessä kontekstissa vain yksi säie voidaan suorittaa Rubiini koodia milloin tahansa. The GIL on olemassa suojellakseen Rubiini kilpailuolosuhteista johtuvia sisäisiä osia, jotka voivat vioittaa tietoja.

Suositeltava: