2013-08-20 11 views

Odpowiedz

9

To prawda, że ​​operacje takie jak sen będą blokować wątek. Ale zdarzenia we/wy mogą rzeczywiście być asynchroniczne.

Node.js używa do tego celu pętli zdarzeń. Pętla zdarzeń jest "jednostką, która obsługuje i przetwarza zdarzenia zewnętrzne i przekształca je w wywołania zwrotne". Gdy potrzebne są dane, nodejs rejestruje wywołanie zwrotne i wysyła operację do tej pętli zdarzeń. Gdy tylko dane są dostępne, wywoływane jest wywołanie zwrotne.

http://blog.mixu.net/2011/02/01/understanding-the-node-js-event-loop/ uzyskać więcej informacji

+2

Tylko o tym, aby opublikować ten link. To dobry artykuł, który powinien wyjaśnić, co powinieneś wiedzieć. – Andy

7

We/wy obsługiwane przez node.js jest wewnętrznie wielowątkowe.

Jest to interfejs programowania, który jest jednowątkowy i asynchroniczny.

+0

Bardzo elegancka odpowiedź, dziękuję. – carousel

0

Ryan Dahl: Original Node.js presentation at JSConf 2009 (Ryan jest twórcą node.js)

Ten film będzie odpowiedzieć na to pytanie.

Istotą JavaScriptu (v8) są wywołania zwrotne zdarzeń (button onclick = "functions()" itp.). W ten sposób I/O jest wielowątkowe. Nadal musimy napisać nasz kod, aby nie blokować I/O, pisząc jedynie callbacki; w przeciwnym razie kod będzie czekać na odpowiedzi db.query i będzie blokowany przed wykonaniem następnego wiersza kodu.

Powiązane problemy