2010-11-29 41 views
6

此問題對於Java JVM可能非常基礎。如果我有一個Java獨立程序,並且例如該程序的5個進程正在服務器的特定時間運行,那麼我們可以說這5個Java進程在5個JVM中運行嗎?JVM和Java Linux進程

通過過程,我的意思是Linux過程在這裏。如果我執行ps -ef |grep java,我會看到5個java進程出現。

+0

http://code.google.com/p/jvmtop/顯示所有jvms – MRalwasser 2013-03-14 10:43:34

回答

10

是的,這是正確的。每個java進程都有一個JVM。

+0

我們可以說java進程的數量是否等於所有情況下運行的JVM的數量? – Gnanam 2010-11-29 07:18:44

+2

在正常的Linux安裝中,如問題中所述。每個進程嘗試多個JVM都有可能的解決方案。例如,請參見[這篇(舊)文章](http://onjava.com/pub/a/onjava/2001/09/25/optimization.html)。 – 2010-11-29 07:26:43

0

取決於JVM和本機庫。您可能會在ps中看到JVM線程顯示不同的PID。一般來說,子進程PID將具有java進程的父進程PID作爲線程。

你不能肯定地說,Linux java進程的數量==#實例化的JVM。

+1

在Linux上,JVM使用真正的本機線程,它與進程*相似。但是,它們並不是一回事,因爲只有一個進程擁有自己的地址空間。 – 2010-11-29 07:30:05

4

您可以運行jps命令(如果它不在路徑中,則從JDK的bin文件夾中)找出您的計算機上正在運行的Java進程(JVM)。