Czy Ruby on Rails jest wielowątkowy?
Czy Ruby on Rails jest wielowątkowy?
Anonim

Phusion Passenger wykorzystuje współbieżność opartą na procesach do jednoczesnej obsługi kilku żądań, więc ściśle mówiąc, nie jest to „ wielowątkowy ”, ale nadal jest współbieżny. Ta rozmowa z Rubin MidWest 2011 ma dobre przemyślenia na temat zdobywania wielowątkowy Ruby on Rails pójście.

Czy w ten sposób Ruby obsługuje wielowątkowość?

A wielowątkowy program ma więcej niż jeden wątek wykonania. Rubin ułatwia pisanie programów wielowątkowych z klasą Thread. Rubin wątki to lekki i wydajny sposób na osiągnięcie współbieżności w kodzie.

Po drugie, czy Ruby jest współbieżny? W szczególności, Współbieżność rubinowa to sytuacja, w której dwa zadania mogą być uruchamiane, uruchamiane i kończone w nakładających się okresach czasu. Nie musi to jednak oznaczać, że zawsze będą działać w tym samym momencie (np. wiele wątków na maszynie jednordzeniowej).

Podobnie, czy Ruby jest jednowątkowy?

Krótka odpowiedź brzmi: tak, są jednowątkowy . Długa odpowiedź brzmi: to zależy. JRuby jest wielowątkowy i może być uruchamiany w tomcat jak inny kod java. MRI (domyślnie rubin ) i Python mają GIL (Global Interpreter Lock) i dlatego są jednowątkowy.

Czy Ruby ma Gila?

MRI ma coś, co nazywa się globalną blokadą interpretera ( GIL ). To zamek wokół egzekucji Rubin kod. Oznacza to, że w kontekście wielowątkowym można wykonać tylko jeden wątek Rubin kod w dowolnym momencie. ten GIL istnieje, by chronić Rubin elementy wewnętrzne z warunków wyścigu, które mogą uszkodzić dane.

Zalecana: