В общем у меня возникла проблема. Так сложилось что приложение должно запускаться каждую минуту и жить около 40 сек. Судя по логам (логи поступают из stdout в файл) приложение завершает работу нормально и без ошибок, НО! htop показывает множество процессов этого приложения. Как я понимаю это процессы тредов.
Причем заметил особенность, если я запускаю приложение просто:
java -jar /path/app.jar
то все нормально. Но если я добавляю задачу в крон:
* * * * * java -jar /path/app.jar
То возникает такая беда с потоками.
Код работает приблизительно следующим обазом:
1. main создает экземпляр класса ThreadList и запускает метод .start()
2. TreadList получает экземпляры классов и вызывает
for (Advert adv : getAdverts()) {
adv.start();
}
for (Advert adv : getAdverts()) {
try {
adv.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
3. Класс Advert расширяет Thread и выполняет основную логику. Если он выполняется слишком долго вызывается исключение и вызывает метод interrupt()
Подскажите из-за чего могут не завершаться процессы потоков?