Câu hỏi phỏng vấn Node.js
Câu hỏi

Node.js xử lý Child Threads như thế nào?

Câu trả lời

Node.js là một ngôn ngữ đơn luồng (single-threaded) và sử dụng nhiều luồng ở phía sau cho các tác vụ như các cuộc gọi I/O, nhưng nó không tiết lộ các luồng con (child threads) cho nhà phát triển. Tuy nhiên, Node.js cung cấp các cách để làm việc song song với tiến trình đơn luồng chính nếu chúng ta thực sự cần thực hiện một số công việc song song.

Node.js xử lý các luồng con thông qua module child_process, cho phép Node.js chạy các tiến trình con bằng cách truy cập các lệnh hệ điều hành. Module này cung cấp khả năng tạo ra các tiến trình con độc lập để thực hiện các tác vụ cụ thể, giúp Node.js chạy nhiều tác vụ đồng thời và tận dụng tối đa sức mạnh của máy chủ. Các tiến trình con này có thể giao tiếp với tiến trình cha qua luồng (streams), các sự kiện (events), và các cơ chế khác.

Module worker_threads cũng cho phép sử dụng các luồng (threads) thực thi JavaScript song song. Các luồng worker hữu ích cho việc thực hiện các thao tác JavaScript tiêu tốn nhiều CPU. Chúng không giúp ích nhiều cho công việc chủ yếu là I/O, vì các hoạt động I/O không đồng bộ tích hợp sẵn của Node.js hiệu quả hơn. Khác với child_process hoặc cluster, worker_threads có thể chia sẻ bộ nhớ. Chúng làm điều này bằng cách chuyển giao các instance của ArrayBuffer hoặc chia sẻ các instance của SharedArrayBuffer.

Ví dụ về việc sử dụng child_process:

const { for...
middle

middle

Gợi ý câu hỏi phỏng vấn

middle

Chúng ta có thể chạy một external process với Node.js không?

middle

Event-Loop trong Node.js là gì?

middle

Node.js stream là gì?

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào