首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java与多核

Java与多核
EN

Stack Overflow用户
提问于 2014-07-09 14:29:00
回答 1查看 331关注 0票数 1

我在某个地方读到过,我们每个核心应该有一个JVM。我还读到Java对多核或CPU不好,因此首选scala。

最近,我看到多个线程在不同的核心中执行,如果可用的话。

问题:

  1. JVM是否考虑了多个内核/CPU,并在可用的情况下在单独的核心中执行每个线程?
  2. 为了更好地使用核心,scala的使用与在单独的核心中执行有所不同吗?
  3. 如果JVM在单独的核心(如果可用的话)中执行每个线程,那么每个内核一个JVM的含义是什么,对于一个JVM,我可以使用所有的核心。
  4. 如果对1的回答是肯定的,那么在同一台机器上运行的服务器的多个实例中部署war/ear的用途是什么?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-09 14:36:48

  1. 是。实际上,现在所有JVM都使用本机线程。因此,线程调度和跨内核分发是由操作系统完成的,而不是由JVM完成的。
  2. Scala在JVM上执行,就像Java一样。因此,在Java和Scala之间线程使用内核的方式没有区别
  3. 没有理由让每个内核有一个JVM。您可能希望这样做可以避免每个JVM使用两个多内存,或者能够在没有任何服务中断的情况下使用版本1到版本2,但这是另一回事。
  4. 没有任何与多线程问题相关的理由。正如我所说的,您可能希望有两个JVM,以便能够在不中断任何服务的情况下关闭一个JVM,或者为不同的客户隔离两个版本的同一个应用程序。但这与多线程无关。
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24656457

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档