Thread lancé le processus en cours d'exécution ne pourront pas détruire (Java)

Partir de plusieurs threads et que chaque exec() détruire() l'exécution d'un processus java en résulter des processus de destruction et de toujours courir après la sortie du programme. Voici un code permettant de reproduire le problème. J'ai remarqué le plus de threads que vous commencez, plus le processus de rester en vie. Et la plus de sommeil avant de les détruire(), moins les processus de rester en vie. (J'ai utilisé InfiniteLoop comme un exemple. Tout processus en cours d'exécution fera l'affaire.)

EDIT : le Bug a été signalé à Oracle, attendant une réponse. N'hésitez pas à partager toutes les connaissances/expériences sur le sujet.

for(int i = 0; i < 100; i++)
{
  new Thread(new Runnable()
  {
    public void run()
    {
      try
      {
        Process p = Runtime.getRuntime().exec(new String[]{"java", "InfiniteLoop"});
        Thread.sleep(1);
        p.destroy();
      }catch(IOException | InterruptedException e){e.printStackTrace();}                    
    }
  }).start();
}
Êtes-vous d'obtenir des exceptions?
Il n'y a pas d'exception.
Comment savez-vous?
e.printStackTrace() dans le bloc catch ne rien lors de l'exécution.
Vous êtes en attente pour les filets de résilier avant de sortir? Êtes-vous à la ponte d'un fil de démon (si oui, alors peut-être que la JVM est de mettre fin à l'intérieur de leur sommeil() l'appel lors de vos sorties de programme)?

OriginalL'auteur Bastien | 2013-08-07