-
Pertama-tama,
libuv
telah menghapuslibeio
dari itu. Tapi itu melakukan async file I/O dengan kumpulan utas sepertilibeio
seperti yang Anda sebutkan. -
libuv
juga menghapuslibev
. Itu melakukan I/O jaringan async berdasarkan antarmuka I/O async di berbagai platform, sepertiepoll
,kqueue
danIOCP
, tanpa kumpulan utas. Ada loop peristiwa yang berjalan di utas utamauv
yang mengumpulkan kejadian I/O dan memprosesnya. -
Kumpulan utas di dalam
libuv
adalah kumpulan utas ukuran tetap (4 dalam sistem seperti uinx). Itu melakukan peran antrian tugas dan menghindari kelelahan sumber daya sistem dengan menghasilkan utas tanpa batas ketika permintaan meningkat.
Hingga versi 0.6 node menggunakan libev
untuk menjalankan event-loop dan libeio
untuk I/O asinkron, (backend Unix sangat bergantung pada dua pustaka ini). Tapi libuv
telah mulai mengganti libev
dan libeio
dalam versi 0.8. Itu melakukan, mempertahankan, dan mengelola semua io dan acara di kumpulan acara. libuv
adalah pilihan di pustaka IO asinkron lintas platform.
- Ya, hingga node 0.6, tidak digunakan lagi di 0.8 dan menggunakan kumpulan thread
-
Ya, tapi
libev
tidak menggunakan kumpulan utas. Lihat di siniKlarifikasi :Menurut tautan dalam pertanyaan yang saya posting,
libeio
tidak mendukung semua fungsi POSIX yang berhubungan dengan I/O (termasuk soket). Tetapi penulis simpul memutuskan untuk menggunakannya hanya untuk I/O file asinkron, dan menggunakanlibev
untuk I/O jaringan. Saya tidak tahu dari mana Anda mendengarnya tetapi Anda dapat menggunakan epoll pada file biasa. -
libev
menggunakan event loop jadi tidak ada masalah di sini. - Ya, IOCP menangani async I/O di windows, kernel memang menggunakan kumpulan utas.
- Kernel linux baru memiliki epoll, kqueue di kernel BSD baru.
libev
danlibeio
adalah untuk lingkungan linux dan menyediakan event loop/async IO untuk semua kernel (mendukung pemilihan, polling, epoll, kqueue).
Perbarui pertanyaan:
- tidak tahu banyak tentang
libuv
- mungkin cukup (tidak tahu)
-
Inilah temuan saya di Windows 8, memeriksanya melalui Process Explorer. Menampilkan 4 utas, 1 DLL, 1 File, dan 1 Bagian (total 7 entri) untuk proses aplikasi node.
-
ps -eLf
memang menampilkan semua utas dan proses, mungkin Anda memfilternya secara berlebihan, cari saja pid proses node sepertips -eLf | grep x
di mana x adalah pid untuk proses node.