Thread based vs. Event based

Prinzipiell gibt es 2 grundsätzliche Ansätze wie Requests von Clients von einem Web-Server verarbeitet werden können:

Thread based

Hier erstellt der Web-Server einen Thread pro Request und alle weiter Verarbeitung des Request geschieht in diesem neu erstellten Thread.

Das heist aber auch die Anzahl an maximal verfügbaren Threads auf dem Computer entschiedet die maximale Anzahl an gleichzeitigen Verbindungen.

Event based

Hier gelangt jeder Request in eine Art „Warteschlange“ welche dann von einem immer laufenden Web-Server Thread abgearbeitet wird. Damit werden alle Requests vom gleichen Thread verarbeitet.

Damit umgeht man den „Overhead“ welcher entsteht, wenn pro Request ein Thread erstellt wird.

Das bedeutet aber auch, dass bei einem sehr rechenintensiven Request alle weiteren Request „hängen“ da erst der rechenintensive Request abgearbeitet werden muss.

Da aber Javascript prinzipiell asynchron geschrieben wird und kein „blocking“ Code (einfach) geschrieben werden kann ist dies kein Problem und daher performant.

Am Beispiel von Node.js heist diese „Warteschlange“ Event Loop.

Node.js Event Loop

Source: https://stackoverflow.com/questions/21596172/what-function-gets-put-into-eventloop-in-nodejs-and-js

Teile diesen Beitrag

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Seite wird geschützt durch reCAPTCHA und die Google Datenschutzerklärung und Nutzungsbedingungen gelten.