【问题标题】:Do Multiple JVM running on a multicore CPU block each other?在多核 CPU 上运行的多个 JVM 会相互阻塞吗?
【发布时间】:2019-02-11 06:21:13
【问题描述】:

我问这个问题可能很天真,但我没有找到任何有用的答案。 问题:在多核 cpu 上运行的多个 JVM/Java 进程(拥有自己的线程池)如何共享资源?各个线程池是平等地使用资源还是相互阻塞,即来自不同池的线程相互阻塞?

【问题讨论】:

  • 一台机器上运行的两个 JVM 是两个不同的进程。所以它们之间的关系与任何两个进程之间的关系是一样的。
  • @ernest_k 那么这意味着托管在不同JVM中的线程池可以平等地使用资源吗?我的意思是我正在寻找关于以下方面的想法:我们是否应该在不考虑其他应用程序的线程池容量的情况下将进程放在已经托管一些应用程序(不增加 cpu 内核)的盒子上时考虑这一点?
  • 很好的问题。虽然这当然取决于操作系统和资源处理,如果它是关于一般的可能性我会说是的,但如果进程能够阻止资源(锁定独占),它们可能(!)相互阻塞。为了更好(真正的答案),我认为您需要更具体。
  • 两个不同的进程如何共享资源取决于操作系统。 Java 线程池不是可共享的资源。您应该让操作系统担心调度。和资源分配。不要认为你能超越它。

标签: java concurrency


【解决方案1】:

与阻止任何其他程序的任何程序没有什么不同。根据内核中的任务调度程序,所有程序都在 CPU 上共享时间。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-17
    • 1970-01-01
    相关资源
    最近更新 更多