A është Ruby on Rails me shumë fije?
A është Ruby on Rails me shumë fije?

Video: A është Ruby on Rails me shumë fije?

Video: A është Ruby on Rails me shumë fije?
Video: Ruby on Rails by Leila Hofer 2024, Nëntor
Anonim

Phusion Passenger përdor njëkohshmërinë e bazuar në proces për të trajtuar disa kërkesa njëkohësisht, kështu që, në mënyrë rigoroze, nuk është " me shumë fije , " por është ende i njëkohshëm. Ky bisedë nga Rubin MidWest 2011 ka disa mendime të mira për marrjen Ruby on Rails me shumë fije duke shkuar.

Në këtë mënyrë, a e mbështet Ruby multithreading?

A me shumë fije programi ka më shumë se një thread ekzekutimi. Rubin e bën të lehtë shkrimin e programeve me shumë fije me klasën Thread. Rubin threads janë një mënyrë e lehtë dhe efikase për të arritur harmonizimin në kodin tuaj.

Së dyti, a është Ruby në të njëjtën kohë? Veçanërisht, Konkurrenca rubin është kur dy detyra mund të fillojnë, ekzekutohen dhe përfundojnë në periudha kohore të mbivendosura. Sidoqoftë, nuk do të thotë domosdoshmërisht që të dy do të funksionojnë në të njëjtën çast (p.sh., fije të shumta në një makinë me një bërthamë).

Po kështu, a është Ruby me një fije të vetme?

Përgjigja e shkurtër është po, ata janë me fije të vetme . Përgjigja e gjatë është se varet. JRuby është me shumë fije dhe mund të ekzekutohet në tomcat si kodet e tjera java. MRI (e parazgjedhur rubin ) dhe Python të dy kanë një GIL (Global Interpreter Lock) dhe janë kështu me fije të vetme.

A ka Ruby një Gil?

MRI ka diçka që quhet bllokim global i përkthyesve ( GIL ). Është një bllokim rreth ekzekutimit të Rubin kodi. Kjo do të thotë që në një kontekst me shumë fije, vetëm një thread mund të ekzekutohet Rubin kodi në çdo kohë. Të GIL ekziston për të mbrojtur Rubin të brendshme nga kushtet e garës që mund të korruptojnë të dhënat.

Recommended: