Pojedynczy wątek i pętla zdarzeń w Node.js

Po pierwsze, staram się zrozumieć, co to jest Node.Js. Mam dwa pytania.

Pierwsze pytanie
Zartykuł Felixa powiedział: „może być tylko jedno wyzwolenie wywołania zwrotnego w tym samym czasie. Do czasu zakończenia wywołania zwrotnego wszystkie inne wywołania zwrotne muszą czekać w kolejce”.

Następnie zastanów się nad następującym kodem (skopiowanym z oficjalnej strony nodejs)

var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World\n');
}).listen(8124, "127.0.0.1");

Jeśli dwa żądania klienta są odbierane jednocześnie, oznacza to następujący przepływ pracy:

Otrzymano pierwsze zdarzenie żądania http, odebrano drugie zdarzenie żądania.Po otrzymaniu pierwszego zdarzenia wykonywana jest funkcja zwrotna pierwszego zdarzenia.Jednocześnie funkcja oczekiwania na drugie zdarzenie musi czekać.

Czy mam rację? Jeśli mam rację, jakNode.js kontroluj, czy są tysiące żądań klienta w bardzo krótkim czasie.

Drugie Pytanie
Termin „pętla zdarzeń” jest najczęściej używany w temacie Node.js. Zrozumiałem „Pętlę zdarzeń” jak poniżejhttp://www.wisegeek.com/what-is-an-event-loop.htm;

Pętla zdarzeń - lub pętla główna, jest konstrukcją w programach, która kontroluje i wysyła zdarzenia po początkowym zdarzeniu.

Początkowym zdarzeniem może być cokolwiek, w tym naciśnięcie przycisku na klawiaturze lub kliknięcie przycisku programu (w Node.js uważam, że początkowymi zdarzeniami będą żądania http, zapytania db lub dostęp do pliku we / wy).

Nazywa się to pętlą, nie dlatego, że zdarzenie krąży i dzieje się w sposób ciągły, ale dlatego, że pętla przygotowuje się do zdarzenia, sprawdza zdarzenie, wysyła zdarzenie i powtarza cały proces.

Mam konflikt o drugim akapicie, zwłaszcza wyrażenie „powtarza cały proces„. Zaakceptowałem tohttp.createServer Kod z powyższego pytania jest absolutnie „pętlą zdarzeń”, ponieważ wielokrotnie nasłuchuje zdarzeń żądania HTTP.

Ale nie wiem, jak zidentyfikować następujący kod jako pętlę sterowaną zdarzeniami lub zdarzenie. Nie powtarza niczego poza funkcją wywołania zwrotnego uruchomioną po zakończeniu kwerendy db.

database.query("SELECT * FROM table", function(rows) {
  var result = rows;
});

Proszę, pozwól mi usłyszeć twoje opinie i odpowiedzi.

questionAnswers(2)

yourAnswerToTheQuestion