Doppio:多线程如何工作并且有任何限制?

时间:2016-05-09 20:07:11

标签: javascript java multithreading web-worker doppio

我正在调查使用DoppioJVM将(图形)Java应用程序移植到Javascript。为此,了解它如何在Javascript环境中处理Java线程将是一件好事。具体做法是:

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

1 个答案:

答案 0 :(得分:0)

通过their paper on Doppio查看,似乎JVM在主Javascript线程中运行。或者,根据此github issue on running Doppio in a worker,它在Web工作者中运行良好。但是,似乎Doppio线程池是一个模拟线程池,所有这些都在同一个" real"线程,所以这些不会映射到Web工作者。这似乎由the about page on Doppio确认状态

  

由于JavaScript本质上是单线程的,因此一次只能运行一个线程

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

  

线程可以共享内存吗?

是的,因为他们都在主要的Javascript线程/单个工作者

  

线程可以在不同的CPU内核上运行吗?

不,原因与上述相同

  

与通常的JVM相比,Doppio中可能存在线程的任何其他限制/问题

他们的论文中的一个主要内容,即公认的不具有多线程特性,是有24x到42x的减速

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