В общем
Я хочу иметь возможность закрыть свое Java-приложение, даже если в нем все еще работают потоки (не демоны). Возможно ли это в Java? (Исходя из мира С++, это похоже на основной запрос)
Причина
Я создаю платформу, которая загружает внешние плагины, реализующие интерфейс. перед выключением я вызываю функцию close()
для каждого плагина, ожидая, что он освободит все свои ресурсы и остановит все свои потоки. Но так как плагин создается несколькими командами на моем рабочем месте, я не могу их контролировать, и не раз кто-то не закрывал все свои потоки, оставляя приложение застрявшим в стадии завершения работы.
Я хотел бы закрыть программу. принудительно после того, как я вызвал функцию close()
каждого плагина. Если они не позаботились о своих ресурсах, это их собственная проблема...
System.exit(int)
закроет JVM независимо от того, какие потоки запущены. - person Guillaume Polet   schedule 07.01.2015SIGKILL
в этих потоках. Это последняя попытка, и на владельцев этих компонентов нужно кричать. - person chrylis -cautiouslyoptimistic-   schedule 07.01.2015