javascript - Doppio:多线程如何工作?有什么限制吗?

标签 javascript java multithreading web-worker

我正在使用 DoppioJVM 进行调查用于将(图形)Java 应用程序移植到 Javascript。为此,最好了解它如何在 Javascript 环境中处理 Java 线程。具体来说:

  • 线程可以共享内存吗?
  • 线程可以在不同的 CPU 内核上运行吗?
  • 与普通 JVM 相比,Doppio 中线程可能存在的任何其他限制/问题

最佳答案

浏览their paper on Doppio ,看起来 JVM 在主 Javascript 线程中运行。或者,根据这个github issue on running Doppio in a worker ,它在网络 worker 中运行良好。然而,Doppio 线程池似乎是一个模拟线程池,所有线程都位于同一个“真实”线程中,因此这些线程不会映射到 Web Worker。 the about page on Doppio似乎证实了这一点这表明

Since JavaScript is essentially single threaded, only one thread runs at a time

所以回答我自己的问题......

Can the threads share memory?

是的,因为它们都在主 Javascript 线程/单个工作线程中

Can the threads run on different CPU cores?

不,原因与上述相同

Any other limitations/issues threads might have in Doppio compared to a usual JVM

他们的论文中的一个主要问题(诚然不是多线程特定的)是速度降低了 24 倍到 42 倍

<小时/>

感谢 Mike C 和 James Large 在评论中发布的评论和链接。

关于javascript - Doppio:多线程如何工作?有什么限制吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37124552/

相关文章:

javascript - IE8 对象当对象包含空值时出现预期错误

javascript - 如何从页面动态删除脚本

java - 如何将对象传递给 Controller ​​中的 ModelAttribute - Spring

我可以在双重解锁 pthread_mutex_t 时强制崩溃吗?

java - 有没有一种方法可以执行计时器而无需在java中创建单独的线程?

javascript - 并排对齐部分

javascript - 验证提供的值是否是 Lodash 的实例

java - 在JAVA中生成x509certificate certpath

java - 如何根据类的值将类对象添加到hashMap?

java - 使用java执行shell命令