使用JavaScript Web Workers进行并行编程/同步

scr*_*avy 5 javascript synchronization web-worker

是否存在任何同步原语,如障碍,信号量,锁定,监视器 ......,JavaScript/Web Workers中可用,或者是否有一些库可以让我使用这些东西(我想的是java.util.concurrent之类的东西)在Java)?

Worker是否具有模糊属性,使它们与Threads区别开来(例如,它们可以与主线程共享内存)吗?是否存在某种限制可以产生多少工人(例如,出于安全原因或某些原因......)?我需要特别照顾一些东西吗?

Mat*_*ewJ 3

Web Workers 没有共享内存的概念;线程之间传递的所有消息都会被复制。话虽如此,您没有屏障、信号量、锁和监视器,因为您在 Web Worker 模型中不需要它们。

共享内存的概念早在 2011 年 2 月就被提出,但由于开发人员的复杂性,现在的状态尚未修复 => https://lists.webkit.org/pipermail/webkit-unassigned/2011-February/287595.html

这里还有一个关于网络工作者的很好的简介。 http://blogs.msdn.com/b/ie/archive/2011/07/01/web-workers-in-ie10-background-javascript-makes-web-apps-faster.aspx

希望这可以帮助