JavaScript execution on the main thread is single-threaded, but Node uses a thread pool (libuv) for some operations (e.g. file system, DNS, some crypto) and can use worker threads. The event loop coordinates callbacks; CPU-heavy JS still blocks the loop — offload with workers or native addons.
Having a tech or coding interview? Check 29 JavaScript & Node.js interview questions.