Запускаемые потоками процессы не уничтожают (Java)JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Запускаемые потоками процессы не уничтожают (Java)

Сообщение Anonymous »

Запуск нескольких потоков и выполнение каждого из них exec(), а затем уничтожения() работающего Java-процесса приводит к тому, что часть процесса не уничтожается и продолжает работать после выхода из программы. Вот код, который воспроизводит проблему. Я заметил, что чем больше потоков вы запускаете, тем больше процессов остается в живых. И чем дольше сон перед уничтожением(), тем меньше процессов остается в живых. (В качестве примера я использовал InfiniteLoop. Любой запущенный процесс поможет.)

РЕДАКТИРОВАТЬ: Об ошибке было сообщено в Oracle, ждем ответа. Не стесняйтесь делиться любыми знаниями/экспериментами по этой теме.

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();
}


Подробнее здесь: https://stackoverflow.com/questions/181 ... stroy-java
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»