2011-06-17 15 views
5

Ejecutar un programa java de subproceso simple muy simple. Cuando compruebo los hilos usando el comando bajo UbuntuCuando ejecuto un programa Java de subproceso único, ¿por qué hay varios subprocesos en el nivel del sistema operativo?

ps -eLf 

muestra que hay 14 subprocesos en el nivel del sistema operativo. Supongo que solo hay un hilo cuando el programa tiene un hilo, y x hilos si el programa tiene x hilos. ¿Mi expectativa está equivocada?

+0

* ¿Mi expectativa es incorrecta? * Sí terriblemente mal. – bestsss

Respuesta

10

La JVM tiene sus propios hilos, como el recolector de basura. Intente hacer un kill -3 <pid> en él, y le mostrará todos los hilos.

1

Creo que la Máquina Virtual Java siempre abre múltiples subprocesos de sistema operativo cada vez que se inicia, por lo que está viendo lo que está viendo. Además, no estoy seguro de que la clase Java Thread use threads nativos.

+0

prácticamente todos los mainstream jvm usan threads nativos actualmente. – jtahlborn

2

La JVM tiene varios subprocesos ejecutándose. Esa es la razón por la que ves tantos hilos.

Cuestiones relacionadas