纯粹的好奇心,我只是想知道是否有任何情况下,如果CPU中只有一个线程可用,也许有一些虚拟化,使用GPU,webworker会设法执行一个单独的线程?
谢谢!
你的问题背后似乎有两个前提:首先,网络工作者使用线程;其次,多线程需要多个核心。但两者都不是真的。
第一个:没有实际要求用线程实现Web worker。用户代理可以自由使用进程,线程或任何“等效构造”[参见web worker规范]。如果他们愿意,他们可以在单个线程中使用多任务处理。 Web worker脚本同时运行,但不一定与浏览器JavaScript并行。
第二种:多个线程很可能在单个CPU上运行。它的工作方式与单线程JavaScript中的并发异步函数非常相似。
所以是的,回答你的问题:网络工作者在单个核心客户端上运行正常。您将失去一些性能优势,但代码仍将像在多核系统中一样。