2016-03-24 8 views
2

Wie ich weiß, ein Knoten JS-Server weiterhin auf einen Port für alle eingehenden Anfragen zu hören, was bedeutet, dass der Thread ständig beschäftigt ist? Wann unterbricht es diese kontinuierliche Endlosschleife und prüft, ob Ereignisse aus der Rückrufwarteschlange verarbeitet werden?Wann überprüft nodeJS die Rückrufwarteschlange, um Callbacks auszuführen?

2) Wenn Node JS einen Code für Callback-Funktionen ausführt, wird der Server im Wesentlichen gestoppt? Es hört nicht auf weitere Anfragen? Ich meine, da nur ein einziger Thread beide Aufgaben erledigt, kann immer nur einer erledigt werden.

Ist dieses Verständnis korrekt oder gibt es mehr?

+0

[refee zu dieser URL] (http://blog.mixu.net/2011/02/01/understanding-the-node-js-event-loop/) –

+0

Auf Ports hören und nach Ereignissen suchen sind eins und das gleiche. Sehen Sie diese Antwort für, wie alles auf der niedrigen Ebene funktioniert: http://stackoverflow.com/questions/29883525/i-know-that-callback-function-runs-asynchronously-but-why/29885509#29885509 – slebetman

+0

Bei einem leicht höheres Niveau, hier ist eine Antwort, die erklärt, wie die Ereignisschleife funktioniert: http://stackoverflow.com/questions/19616477/does-javascript-process-using-an-elastic-racetrack-algorithm/19620041#19620041 – slebetman

Antwort

0

Knoten Thread behält eine event loop und wann immer eine Aufgabe abgeschlossen wird, feuert es das entsprechende Ereignis, das die Ereignis-Listener-Funktion signalisiert, um ausgeführt zu werden. Die event loop iterieren einfach über die Ereigniswarteschlange, die im Grunde eine Liste von Ereignissen und Rückrufen von abgeschlossenen Operationen ist. In der Regel gibt es eine Hauptschleife, die auf Ereignisse wartet und dann eine Rückruffunktion auslöst, wenn eines dieser Ereignisse erkannt wird.

http://abdelraoof.com/img/nodejs/nodejs-event-loop.png

ähnliche Eventloop Fragen sind hier:

Node.js Event loop

Understanding the Event Loop

Quelle:

http://abdelraoof.com/blog/2015/10/28/understanding-nodejs-event-loop/ http://www.tutorialspoint.com/nodejs/nodejs_event_loop.htm http://chimera.labs.oreilly.com/books/1234000001808/ch03.html#chap3_id35941348

+0

Sieht wie ein sehr generisches aus antworte und ich habe das schon gelesen aber meine Punkte sind noch nicht speziell beantwortet. Der Hauptfaden selbst ist die Ereignisschleife, nicht wahr? – learnerFromHell

+0

@learnerFromHell, Art des Hauptthreads selbst ist Ereignisschleife, hier ist ein [Video] (https://www.youtube.com/watch?v=8aGhZQkoFbQ), um Ihnen zu helfen, die Ereignisschleife zu verstehen. – zangw

+0

Korrigieren Sie so als Wenn in diesem Video der Hauptaufrufspeicher leer ist, nimmt die Ereignisschleife die Handler aus der Ereigniswarteschlange auf und beginnt sie zu verarbeiten. Was passiert mit eingehenden Anfragen zu dieser Zeit? Hört der Server nicht zu? Hört der Server einen separaten Thread ab? – learnerFromHell

Verwandte Themen