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

Wideo: Czy Ruby on Rails jest wielowątkowy?

Wideo: Czy Ruby on Rails jest wielowątkowy?
Wideo: Threads in Ruby 2024, Listopad
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: