Ist Ruby on Rails Multithreading?
Ist Ruby on Rails Multithreading?

Video: Ist Ruby on Rails Multithreading?

Video: Ist Ruby on Rails Multithreading?
Video: What Is Ruby On Rails? | Ruby On Rails For Beginners | Ruby Programming Language | Simplilearn 2024, November
Anonim

Phusion Passenger verwendet prozessbasierte Parallelität, um einige Anfragen gleichzeitig zu bearbeiten. Genau genommen ist dies also nicht " multithreaded , ", ist aber immer noch gleichzeitig. Dieser Vortrag von Rubin MidWest 2011 hat einige gute Gedanken zum Erhalten Multithreaded Ruby on Rails gehen.

Unterstützt Ruby auf diese Weise Multithreading?

EIN multithreaded Programm hat mehr als einen Ausführungs-Thread. Rubin macht es einfach, Multithread-Programme mit der Thread-Klasse zu schreiben. Rubin Threads sind eine einfache und effiziente Möglichkeit, um Parallelität in Ihrem Code zu erreichen.

Zweitens, ist Ruby gleichzeitig? Bestimmtes, Ruby-Parallelität ist, wenn zwei Aufgaben in überlappenden Zeiträumen gestartet, ausgeführt und abgeschlossen werden können. Es bedeutet jedoch nicht unbedingt, dass beide gleichzeitig ausgeführt werden (z. B. mehrere Threads auf einer Single-Core-Maschine).

Ist Ruby auch Single-Threaded?

Die kurze Antwort ist ja, das sind sie Einzelgewinde . Die lange Antwort ist, es kommt darauf an. JRuby ist multithreaded und kann in Tomcat wie anderer Java-Code ausgeführt werden. MRT (Standard) Rubin ) und Python haben beide eine GIL (Global Interpreter Lock) und sind somit Einzelgewinde.

Hat Ruby einen Gil?

MRT hat so genannte globale Interpretersperre ( GIL ). Es ist eine Sperre um die Ausführung von Rubin Code. Dies bedeutet, dass in einem Multithread-Kontext nur ein Thread ausgeführt werden kann Rubin Code zu einem beliebigen Zeitpunkt. Die GIL existiert um zu schützen Rubin Interna von Race-Conditions, die Daten beschädigen könnten.

Empfohlen: