Doppio:多线程是如何工作的,有什么限制吗

Doppio: how does multi-threading work and are there any limitations?

本文关键字:什么 工作 多线程 何工作 Doppio      更新时间:2023-09-26

我正在研究使用DoppioJVM将(图形)Java应用程序移植到Javascript。为此,最好了解一下它是如何在Javascript环境中处理Java线程的。具体而言:

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

浏览他们关于Doppio的论文,JVM似乎在主Javascript线程中运行。或者,根据github关于在工作人员中运行Doppio的问题,它在网络工作人员中可以正常运行。然而,Doppio线程池似乎是一个模拟线程池,所有线程都在同一个"真实"线程中,因此这些线程不会映射到web工作者。Doppio上关于的页面似乎证实了这一点

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

所以为了回答我自己的问题。。。

线程可以共享内存吗?

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

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

不,原因与上述相同

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

他们论文中的一个主要问题是的速度降低了24到42倍


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