如何在Web Workers之间有效地共享状态?

时间:2013-04-04 21:20:07

标签: javascript html5 concurrency web-worker

我正在考虑将游戏移植到HTML5,但我遇到了一些问题。

游戏使用多线程,渲染在主线程上运行,脚本在工作线程上运行。多个脚本可以(并经常)并发运行。它有大量的全局数据,任何脚本都可以访问,主要是读取,但偶尔也可以写入。有机制确保线程安全不是问题。

看起来HTML 5 Web Workers可以用来设置多线程,但是让全局数据工作将是一个大问题,因为似乎没有任何简单的方法来在工作者之间共享数据。理论上,我可以将所有全局数据放在共享工作器中,并让每个脚本工作程序发送消息来获取和设置数据,但是访问很常见,消息传递开销会完全破坏性能,特别是因为简单的读取会很远比写入更昂贵,并且可能需要某种CPS实现才能使其正常工作。

有没有什么好方法可以将这样的架构移植到HTML5和JavaScript?

0 个答案:

没有答案