javaprocessdebianhtop

Why does Java spawn so many processes?


I've written a Java server application that I run on a Debian 7 VServer.

The application itself works just fine, but I notices something very strange.

Issue

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:

htop with strange subprocesses

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?


Solution

  • 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.