Är Ruby on Rails flertrådad?
Är Ruby on Rails flertrådad?

Video: Är Ruby on Rails flertrådad?

Video: Är Ruby on Rails flertrådad?
Video: Threads in Ruby 2024, Maj
Anonim

Phusion Passenger använder processbaserad samtidighet för att hantera ett fåtal förfrågningar samtidigt, så strängt taget är det inte " flertrådig , " men är fortfarande samtidigt. Detta samtal från Rubin MidWest 2011 har några bra tankar om att få flertrådig Ruby on Rails gående.

På detta sätt, stöder Ruby multithreading?

A flertrådig programmet har mer än en exekveringstråd. Rubin gör det enkelt att skriva flertrådade program med klassen Thread. Rubin trådar är ett lätt och effektivt sätt att uppnå samtidighet i din kod.

För det andra, är Ruby samtidig? Särskilt, Ruby samtidighet är när två uppgifter kan starta, köras och slutföras i överlappande tidsperioder. Det betyder dock inte nödvändigtvis att de båda någonsin kommer att köras i samma ögonblick (t.ex. flera trådar på en enkärnig maskin).

På samma sätt, är Ruby enkelgängad?

Det korta svaret är ja, det är de enkelgängad . Det långa svaret är att det beror på. JRuby är flertrådig och kan köras i tomcat som annan java-kod. MRT (standard rubin ) och Python har båda ett GIL (Global Interpreter Lock) och är alltså enkelgängad.

Har Ruby en Gil?

MRI har något som kallas ett globalt tolklås ( GIL ). Det är ett lås kring utförandet av Rubin koda. Detta innebär att i ett flertrådigt sammanhang kan endast en tråd köras Rubin kod när som helst. De GIL finns för att skydda Rubin interner från tävlingsförhållanden som kan korrumpera data.

Rekommenderad: