Как узнать, кто создал Thread в Java?
Представьте следующее: вы используете ~ 30 сторонних JAR в сложной среде плагина. Вы запускаете его, запускаете много кода, делаете некоторые вычисления и, наконец, вызываете shutdown().
Этот жизненный цикл обычно работает отлично, за исключением того, что при каждом запуске некоторые (не-демонические) потоки остаются свисающими. Это не проблема, если каждое завершение работы было последним отключением, я мог бы просто запустить System.exit() в этом случае. Тем не менее, этот цикл может выполняться несколько раз, и он каждый раз увеличивает количество мусора.
Итак, что мне делать? Я вижу потоки в Eclipse Debug View. Я вижу их следы стека, но они не содержат никаких намеков на их происхождение. Нет трассировки стека создателя, нет отличимого имени класса, ничего.
Есть ли у кого-нибудь идея, как решить эту проблему?