Single threaded e Event Loop no Node.js

Primeiro de tudo, estou tentando entender o que é Node.Js. Eu tenho duas perguntas.

Primeira pergunta
Deo artigo de Felix, ele disse que "só pode haver um retorno de chamada ao mesmo tempo. Até que o retorno de chamada tenha terminado de ser executado, todos os outros retornos de chamada terão que esperar na fila".

Em seguida, considere o seguinte código (copiado do site oficial do 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");

Se duas solicitações de clientes forem recebidas simultaneamente, isso significa o seguinte fluxo de trabalho:

Primeiro evento de solicitação de http recebido, Segundo evento de solicitação recebido.Assim que o primeiro evento é recebido, a função de retorno de chamada para o primeiro evento está sendo executada.No momento, a função de retorno de chamada para o segundo evento deve estar aguardando.

Estou certo? Se estou certo, comoNode.js controle se houver milhares de pedidos de clientes dentro de um período de tempo muito curto.

Segunda questão
O termo "Event Loop" é usado principalmente no tópico Node.js. Eu entendi "Evento Loop" como o seguinte dehttp://www.wisegeek.com/what-is-an-event-loop.htm;

Um loop de eventos - ou loop principal, é uma construção dentro de programas que controla e despacha eventos após um evento inicial.

O evento inicial pode ser qualquer coisa, incluindo apertar um botão em um teclado ou clicar em um botão em um programa (no Node.js, acho que os eventos iniciais serão http request, db queries ou I / O file access).

Isso é chamado de loop, não porque o evento circula e acontece continuamente, mas porque o loop se prepara para um evento, verifica o evento, despacha um evento e repete o processo novamente.

Eu tenho um conflito sobre o segundo parágrafo, especialmente a frase "repete o processo tudo de novo". Aceitei que o acimahttp.createServer O código da pergunta acima é absolutamente "loop de eventos" porque repetidamente escuta os eventos de solicitação http.

Mas não sei como identificar o código a seguir como se fosse um loop de eventos ou de eventos. Ele não repete nada, exceto a função de retorno de chamada disparada após a conclusão da consulta do db.

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

Por favor, deixe-me ouvir suas opiniões e respostas.

questionAnswers(2)

yourAnswerToTheQuestion