Why does Java spawn so many processes?

牧云@^-^@ 提交于 2019-12-04 03:17:47

问题


I've written a Java server application that I run on a debian 7 vserver. The application itself workes just fine, but I notices something very strange.

After calling java -Xmx200M -jar "CCU.jar I'd expect to see one Java process running my CCU.jar.

When calling top there is just one java process (as expected). But when I call htop I get this:

What are all these subprocesses that seem to be the same process (they have the exactly same data showed in the table) but have different PIDs?


回答1:


A java application is never single threaded (Garbage Collector thread among other). So you always end up with several thread. Moreover, Linux implement thread as Light-weight process therefore, each Java thread will appear as a process with a unique PID in htop.




回答2:


Even the simplest Java application will use several threads for things besides your code. These are for example the garbage collector, finalizer thread and what not.

That many threads indicate that there's some multithreading happening in your application, because Java wouldn't spawn that many just for itself.



来源:https://stackoverflow.com/questions/25502812/why-does-java-spawn-so-many-processes

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!