Ang Ruby on Rails ba ay multithreaded?
Ang Ruby on Rails ba ay multithreaded?

Video: Ang Ruby on Rails ba ay multithreaded?

Video: Ang Ruby on Rails ba ay multithreaded?
Video: What Is Ruby On Rails? | Ruby On Rails For Beginners | Ruby Programming Language | Simplilearn 2024, Nobyembre
Anonim

Ang Phusion Passenger ay gumagamit ng process based concurrency upang pangasiwaan ang ilang mga kahilingan nang sabay-sabay, kaya, sa mahigpit na pagsasalita, ay hindi " multithreaded , " ngunit kasabay pa rin. Ang pag-uusap na ito mula sa Ruby Ang MidWest 2011 ay may ilang magagandang ideya sa pagkuha multithreaded na Ruby on Rails pupunta.

Sa ganitong paraan, sinusuportahan ba ni Ruby ang multithreading?

A multithreaded Ang programa ay may higit sa isang thread ng pagpapatupad. Ruby ginagawang madali ang pagsulat ng mga multi-threaded na programa gamit ang Thread class. Ruby ang mga thread ay isang magaan at mahusay na paraan upang makamit ang concurrency sa iyong code.

Pangalawa, kasabay ba si Ruby? Sa partikular, Ruby concurrency ay kapag ang dalawang gawain ay maaaring magsimula, tumakbo, at makumpleto sa magkakapatong na yugto ng panahon. Gayunpaman, hindi ito nangangahulugan na pareho silang tatakbo nang sabay-sabay (hal., maraming thread sa isang single-core na makina).

Ganun din, single threaded ba si Ruby?

Ang maikling sagot ay oo, sila nga solong sinulid . Ang mahabang sagot ay depende. Si JRuby ay multithreaded at maaaring tumakbo sa tomcat tulad ng iba pang java code. MRI (default ruby ) at Python parehong may GIL (Global Interpreter Lock) at sa gayon solong sinulid.

May Gil ba si Ruby?

MRI may isang bagay na tinatawag na global interpreter lock ( GIL ). Ito ay isang lock sa paligid ng pagpapatupad ng Ruby code. Nangangahulugan ito na sa isang multi-threaded na konteksto, isang thread lang ang maaaring mag-execute Ruby code sa anumang oras. Ang GIL umiiral upang protektahan Ruby mga internal mula sa mga kundisyon ng lahi na maaaring masira ang data.

Inirerekumendang: