- Ho imparato che utilizzano node.js libeio internamente per eseguire async lima I/O, con pool di thread, sulla piattaforma * nix, ho ragione?
- Che dire di rete asincrona I/O? È fatto da libev? C'è anche un pool di thread?
- Se è presente un pool di thread, come potrebbe essere più efficiente del modello tradizionale a thread singolo per richiesta? Ed è un thread per richiesta I/O?
- E qual è il meccanismo su Windows? So che è fatto da IOCP, e c'è un pool di thread a livello di kernel, giusto?
- Perché Linux non ha ancora un meccanismo nativo completamente AIO come Windows IOCP? Avrà in futuro?
Aggiornamento in base alla risposta di Changchang:Confusione circa Node.JS meccanismo interno I/O asincrono
- ho preso una vista veloce al source code @changchang hanno dato, ha scoperto che la dimensione del pool di thread predefinito può essere resettato UV_THREADPOOL_SIZE, mi chiedo nel qual caso sarà usato?
- Ho anche trovato getaddrinfo usare questo pool di thread, c'è altro oltre a fs? E se tutti i lavori di sincronizzazione verranno eseguiti in questo pool di thread, la dimensione predefinita '4' è sufficiente?
- Come ho capito ora, ci saranno 6 thread di base nel processo node.js: 1 thread V8 (loop eventi, dove vengono eseguiti i codici javascript dell'utente), 1 ciclo di eventi di libuv e 4 in pool di thread, ho ragione?
E come posso vedere questi thread nella mia shell (Ubuntu)? Io uso ps -eLf | nodo grep | grep -v grep visto solo due:
radice 16148 7492 16148 0 2 20:43 pts/26 00:00:00 ./bin/node /home/aaron/workspace/test.js
radice 16148 7492 16149 0 2 20:43 pts/26 00:00:00 ./bin/node /home/aaron/workspace/test.js
Vedi qui http://stackoverflow.com/questions/10680601/nodejs-event-loop – user568109
node.js in realtà usa [libuv] (https://github.com/joyent/libuv/) di astrarre IO asincrono per tutte le piattaforme supportate – Milan
@ user568109 Ho letto che, ma non riesco a ottenere una risposta diretta da esso, in realtà, l'espressione poco chiara mi confonde di più. Ha menzionato che libeio 'esegue l'input in modo asincrono' incluse le prese, ne dubito. Ho imparato questo da qualche parte che: perché non posso usare epoll su file regolari, ecco che ecco libeio per eseguire aio con i thread. –