Javascript Webworker和多线程



一个页面的所有javascript webworker是在主页面的一个单独线程上操作,还是每个webworker都有自己的线程?对于上下文:我有一个网络工作者正在处理大量的数据。把它分成10个网络工作者会更快吗?还是他们都使用同一个线程?

这不是标准定义的:

本标准没有定义实现这一目标的精确机制,无论是分时协作多任务、光纤、线程、进程,还是使用不同的超线程、内核、CPU、机器等。

即使每个网络工作者都有自己的线程,如果内核数量低于网络工作者数量,CPU也无法并行运行它们。其他线程也在使用CPU。

网络工作者还没有完全为你的场景。它们更像是一种"不要阻止UI"的东西。另请参阅标准中的声明:

工作人员(此处称为这些后台脚本(的体重相对较重,不打算用于大量

唯一明智的做法是测试什么最有效(使用所有相关浏览器(。您可以在代码中检查self.navigator.hardwareConcurrency(请参阅此处(,以决定应该生成多少个工作者。

最新更新