Bạn không hiểu rồi .
Nodejs single thread không phải chỉ dùng 1 thread để xử lý toàn bộ mọi thứ.
Để cho chính xác thì Nodejs sử dụng 2 thread pool.
Thread pool 1 dùng cho việc phân phối tiến trình xử lý . Đối với CPU nó sẽ dùng 1 thread
Thread pool 2 dùng cho việc xử lý tiến trình . Mặc định max là 4 thread(có thể cấu hình env) của CPU
Điều đó có nghĩa nếu bạn chạy 5 function 1 lúc (không cấu hình nodejs).
Đối với CPU 4 thread thì sẽ trong 1 lúc nó dùng tổng cộng 4 thread để xử lý function, 1 thread để phân phối thread nào sẽ xử lý function đó .
Tại sao mình nói là 4 thread xử lý trong khi đó CPU chỉ support 4 thead, vì 1 thread phân phối sau khi chạy xong nó sẽ được trống chỗ
Xem tệp đính kèm 372758
Nguồn ảnh
https://medium.com/better-programming/is-node-js-really-single-threaded-7ea59bcc8d64)
Quy trình xử lý như sau:
Phân phối (Cpu còn 3 thread) -> Sau khi phân phối (Cpu còn 4 thread) -> Xử lý (Cpu không còn thread nào)
Như vậy còn 1 function nó sẽ xử lý sau khi có 1 thread được trống.
P/s: Các bạn có thể coi tại nguồn này sẽ hiểu rõ hơn :
https://medium.com/better-programming/is-node-js-really-single-threaded-7ea59bcc8d64