Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spidermonkey中的JavaScript线程实现_Javascript_Multithreading_Actor_Spidermonkey - Fatal编程技术网

Spidermonkey中的JavaScript线程实现

Spidermonkey中的JavaScript线程实现,javascript,multithreading,actor,spidermonkey,Javascript,Multithreading,Actor,Spidermonkey,我需要在我的应用程序中像Web Workers一样实现多线程,我们计划使用Spidermonkey来执行javascript。我想要类似API的东西: function BackgroundWorker() { // do something } someglobalobject.spawnWorker(BackgroundWorker); 其中,someglobalobject.spawnWorker是一个C绑定,它在worker被延迟时生成线程或不生成线程,创建新的JSConte

我需要在我的应用程序中像Web Workers一样实现多线程,我们计划使用Spidermonkey来执行javascript。我想要类似API的东西:

function BackgroundWorker() {
    // do something
}

someglobalobject.spawnWorker(BackgroundWorker);
其中,someglobalobject.spawnWorker是一个C绑定,它在worker被延迟时生成线程或不生成线程,创建新的JSContext,将函数BackgroundWorker传输到该上下文并执行它。 我们计划通过传入/传出worker的消息来实现资源共享worker可以注册一些事件挂钩或通过C绑定调用接收消息,也可以通过C绑定到某种共享内存STM。充其量我们希望为JS实现某种Erlang风格的角色。所以我有几个问题:

是否有一些例子可以实现这个东西,但不像Web Workers那样太复杂? JSContext的足迹是什么?有可能会创建很多,或者会导致一些性能瓶颈? 是否有能力在某个从JavaScript调用的C绑定中暂停JavaScript执行?