0

要使用Web Worker获取新线程,我们需要为每个复杂计算创建新的工作对象吗?新Webworker或postMessage哪一个会每次创建新线程

或者我可以只创建一个工作对象,并只发布消息到工作JavaScript文件。

假设我必须为3个不同的输入计算一些东西,计算逻辑是相同的,但输入是不同的。

我是否需要创建3个新的工作对象,或者我可以只创建一个工作者,只需发布​​3个不同的消息来获得3个独立的线程来进行计算?

回答

1

取决于您的要求。

3个新的工作线程将并行计算。

发布到同一个工作线程实例的3个不同消息将按顺序计算这些消息的发布。注意:在这种情况下,您仍然需要一个Web工作人员,以便这些计算不会阻止您的UI。

+0

我想做3个不同的线程并行计算。所以我会创建3个工作对象。感谢您的回答。 –

+0

@SrinivasanDuraisamy请记住,只能有与处理器内核一样多的并行处理。还有些人似乎声称所有工作人员都在一个线程中运行,请阅读此处:http://stackoverflow.com/q/33776530/607407 –

相关问题