Given that Node.js maintains an internal thread pool, some developers in my company argue that Node is multi-threaded.
And they would be right for precisely that reason. Node is a multi-threaded application which uses a threadpool for managing the event loop.
But I would like to believe that it's single threaded since we as developers can never spawn threads in Node.js.
What is userland code can be a contentious point. While node standard library does not provide low level API access to the thread management utilities, multiple libraries (which integrate with node at native level) do, a notable example being node-worker-threads which provides a web-worker API implementation for node applications.
As the author has comprehensively illustrated, it allows developers to leverage worker threads for CPU bound tasks.
