关于stackoverflow和其他网站的许多问题,有人说NodeJS是Singlethread
,有人说NodeJS是Multithread
,他们有自己的逻辑是Singlethread
或{{1} }。但是如果采访者提出同样的问题。我应该说什么。我在这里感到困惑。
答案 0 :(得分:5)
NodeJ中主要的event loop
是single-threaded
,但是大多数I/O
工作是在单独的线程上运行的。
您可以通过创建子进程来使其multi-threaded
。
有一个npm模块napajs
用于创建多线程javascript运行时。
但是,10.5.0
版本宣布了Node.js中的多线程。该功能仍为experimental
,并且可能会进行广泛的更改,但它确实显示了NodeJ前进的方向。
敬请期待!
答案 1 :(得分:3)
NodeJS在单线程环境中运行JavaScript。 您可以使用单个线程(除非使用worker_threads
模块和生成进程)。
在幕后,NodeJS使用libuv
,它以事件循环的形式将OS线程用于异步I / O。
答案 2 :(得分:0)
在一个单词节点中,Single-thread
是一个Multithread
,而行为是libuv
,因为OS
使用Multithread
个线程,所以操作系统是singlethread
。
对于这种行为,有人说Node是多线程的,实际上就是这样。
如果有人告诉我说一个字,我会说ps_product_shop
。