Зависит от того, являются ли запущенные вами потоки потоками демонов или нет, и от того, как вы закрываете основной процесс.
Вот соответствующая документация из стандартной библиотеки:
Когда запускается виртуальная машина Java, обычно существует один поток, не являющийся демоном (который обычно вызывает метод с именем main некоторого назначенного класса).Виртуальная машина Java продолжает выполнять потоки до тех пор, пока не произойдет одно из следующих действий: :
Был вызван метод выхода класса Runtime, и диспетчер безопасности разрешил выходвыполняемая операция.
Все потоки, не являющиеся потоками демона, умерли, либо путем возврата из вызова метода run, либо путем выброса исключения, которое выходит за пределы метода run.
Итак, если вы выключите основной процесс с помощью System.exit
или с помощью jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
, то все потоки умрут, когда вы закроете.
Если вы просто позволите основному потоку (потоку, работающему public static void main
) выпасть из края основного метода, тогда потоки продолжат работать.