Esto puede no responder a la pregunta, pero al menos ayuda a entender lo que está pasando. Para obtener una muestra precisa de los hilos, obtenga el formulario de la lista dentro de su aplicación. (En lugar de partir de las herramientas de depuración.)
JVM w/o Instrumentación
- Tema: principal
- Tema: Referencia Handler
- Tema: Señal Dispatcher
- Tema: Adjuntar Oyente
- Hilo: Finalizador
JVM w/Instrumentación (jconsole)
- Tema: principal
- Tema: conexión de servidor JMX tiempo de espera de 12
- Tema: RMI TCP de conexión (1) -10.1.100.40
- Subproceso: RMI TCP Connection (2) -10.1.100.40
- Tema: Finalizer
- Tema: Referencia Handler
- Tema: RMI Programador (0)
- Tema: Señal Dispatcher
- Tema: RMI TCP Accept-0
- Tema: Adjuntar Listener
Experimento
- ejecute el siguiente código
- jconsole lanzamiento y conectar a la JVM
public class JVM {
public static void main(String... args) throws InterruptedException {
for (java.util.Enumeration<?> e = System.getProperties().propertyNames(); e.hasMoreElements();) {
String prp = (String) e.nextElement();
if (prp.startsWith("java.vm") || prp.startsWith("os.")) {
System.out.format("[%s]=%s%n", prp, System.getProperty(prp));
}
}
java.text.DateFormat df = new java.text.SimpleDateFormat("HH:mm:ss.SSS");
for(;;) {
System.out.format("%s Sampling current threads...%n", df.format(new java.util.Date()));
java.util.Map<Thread, StackTraceElement[]> stacks = Thread.getAllStackTraces();
System.out.format("> Thread Count: %d%n", stacks.size());
for (java.util.Map.Entry<Thread, StackTraceElement[]> entry : stacks.entrySet()) {
Thread thread = entry.getKey();
StackTraceElement[] stack = entry.getValue();
System.out.format("> Thread: %s%n", thread.getName());
// Throwable t = new Throwable("Thread: " + thread.getName());
// t.setStackTrace(stack);
// t.printStackTrace(System.out);
}
java.util.concurrent.TimeUnit.SECONDS.sleep(10);
}
}
}
salida
[java.vm.version]=16.2-b04
[java.vm.vendor]=Sun Microsystems Inc.
[java.vm.name]=Java HotSpot(TM) Client VM
[java.vm.specification.name]=Java Virtual Machine Specification
[os.arch]=x86
[java.vm.specification.vendor]=Sun Microsystems Inc.
[os.name]=Windows XP
[os.version]=5.1
[java.vm.specification.version]=1.0
[java.vm.info]=mixed mode, sharing
14:03:49.199 Sampling current threads...
> Thread Count: 5
> Thread: main
> Thread: Reference Handler
> Thread: Signal Dispatcher
> Thread: Attach Listener
> Thread: Finalizer
14:03:59.200 Sampling current threads...
> Thread Count: 10
> Thread: main
> Thread: JMX server connection timeout 12
> Thread: RMI TCP Connection(1)-10.1.100.40
> Thread: RMI TCP Connection(2)-10.1.100.40
> Thread: Finalizer
> Thread: Reference Handler
> Thread: RMI Scheduler(0)
> Thread: Signal Dispatcher
> Thread: RMI TCP Accept-0
> Thread: Attach Listener
¿Cómo está ejecutando su código? Si está ejecutando desde un IDE, ¿podría ser que su IDE en sí mismo está escrito (y ejecutándose) en Java? – DevSolar
Tengo curiosidad, ¿cómo determinas que funcione 14 hilos? – Coffee
¿Qué te hace pensar que hay 14 hilos? –