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