Node.js nodeJS中的多线程解决方案(比如thread、Gogo)是如何工作的?

Node.js nodeJS中的多线程解决方案(比如thread、Gogo)是如何工作的?,node.js,multithreading,Node.js,Multithreading,我对各种线程解决方案如webworkers、threads、thread gogo npm模块的工作方式很感兴趣 这个查询的原因是因为我知道,如果我有一个单核CPU,我的事件循环将占用CPU来处理传入的请求。最重要的是,如果我创建5个工作线程,总共将启动6个节点js进程,但所有这些进程都将争夺单CPU时间?这是可能的吗?操作系统将对单个核心上的多个进程进行时间分割。每个进程运行一小段时间,然后控制将切换到另一个进程运行一小段时间,依此类推,每个进程实际上都与CPU获得连续的CPU碎片有关。只等待

我对各种线程解决方案如webworkers、threads、thread gogo npm模块的工作方式很感兴趣


这个查询的原因是因为我知道,如果我有一个单核CPU,我的事件循环将占用CPU来处理传入的请求。最重要的是,如果我创建5个工作线程,总共将启动6个节点js进程,但所有这些进程都将争夺单CPU时间?这是可能的吗?

操作系统将对单个核心上的多个进程进行时间分割。每个进程运行一小段时间,然后控制将切换到另一个进程运行一小段时间,依此类推,每个进程实际上都与CPU获得连续的CPU碎片有关。只等待互斥锁或类似的进程在需要它之前不会得到任何CPU时间,因为它们无事可做。请注意,运行比现有内核数量更多的同步和活动进程会减慢速度,而不是加快速度。因此,如果我只有一个没有任何线程的单节点JS实例,因此,即使是我的节点js事件循环也将基于时间切片获得CPU时间,因为我的桌面上运行的其他进程将需要CPU时间?是的,操作系统将尝试在所有活动进程之间共享CPU。仅供参考,节点仅使用一个线程作为主js事件循环,但是,在实现一些异步操作(如node.js文件服务)时,也可能会使用其他线程。因此,使用各种npm模块提供的线程解决方案,每个线程是否都会创建自己的事件循环和回调队列?