Ist Ruby Single-Thread?
Ist Ruby Single-Thread?

Video: Ist Ruby Single-Thread?

Video: Ist Ruby Single-Thread?
Video: Multi-Threading and Ruby's Thread Class - Launch School Tech Talks 2024, April
Anonim

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.

Ist Ruby on Rails auf diese Weise Single-Threaded?

Als Ergebnis, Obwohl Schienen selbst ist Gewinde -sicher seit Version 2.2, es gibt noch keine gute Multi- eingefädelt Server dafür auf Windows-Servern. Und Sie erhalten die besten Ergebnisse, wenn Sie es auf *Nix-Servern mit Multi-Process/ ausführen. Einzel - eingefädelt Parallelitätsmodell. Schienen als rahmen ist Gewinde -sicher. Die Antwort lautet also: Ja!

Anschließend stellt sich die Frage, warum Python Single-Threaded ist. Diese Sperre verhindert die gleichzeitige Ausführung mehrerer Threads im Python Dolmetscher. Jeder Gewinde der laufen will, muss warten, bis die GIL von den anderen freigegeben wird Gewinde , was bedeutet, dass Ihr Multi- Python mit Gewinde Bewerbung ist eigentlich Einzelgewinde.

Auch gefragt, ist Ruby Multi-Threaded?

EIN multithreaded Programm hat mehr als einen Gewinde der Ausführung. Rubin macht es einfach zu schreiben multi - eingefädelt Programme mit dem Gewinde Klasse. Rubinfäden sind eine einfache und effiziente Möglichkeit, um Parallelität in Ihrem Code zu erreichen.

Hat Ruby einen Gil?

Die globale Dolmetschersperre MRT hat eine globale Interpretersperre, oft als bezeichnet GIL , und haben ein hohes Verständnis davon ist wichtig, um zu verstehen, wie wir Multithread-Code in schreiben Rubin . Grundsätzlich die GIL verhindert mehrere Rubin Threads gleichzeitig ausführen.

Empfohlen: