对于Web worker,我是否应该将其视为一种在worker的生命周期中运行的方法(即Java / C#世界中的一个线程)?或者它是一个独特的工作线程,它处理worker的.js文件中的方法调用,其中每个调用接管线程,暂停该线程中的任何其他进程,运行完成,然后退出,另一个方法调用在工人中被吵醒并跑了?
如果它是第一个,如果我可以让一个方法不断运行,在一段时间(真实)循环中,那我该如何让它等待&发信号呢?
如果是第二个,是否有关于如何最好地将工作线程用于需要有时运行的后台进程的任何好资源?
我们正在编写文字处理程序,后台线程需要在编辑器的生命周期内保存整个文档。然后在编辑文档时,重新计算布局。因此,数据必须存在于工作者的生命周期中。然后,当发生变化时,布局代码就会被激活。
更新:我写了一堆测试代码,看起来网络工作程序运行如下 - 当你调用一个方法时,这是唯一一个运行直到它返回的东西。您可以进行其他调用并将它们排队,但在第一个方法完成之前它们不会运行。
好消息是不要担心竞争条件,同步等等。坏消息是没有办法与网络工作者中的方法进行对话。
所以我仍然不确定 - 在后台线程需要大量处理但需要可中断的情况下处理这个问题的最佳方法是什么?