Вы можете попробовать это самостоятельно, например, с помощью следующего кода (новый поток создается и запускается и вызывает a()
, который вызывает себя рекурсивно, чтобы вызвать переполнение стека, пока другой поток печатает что-то на консоли):
public class SO {
private static void a() {
a();
}
public static void main(String[] args) throws InterruptedException {
final Thread t = new Thread( new Runnable() {
public void run() {
a();
}
});
t.start();
while ( true ) {
Thread.sleep( 2000 );
System.out.println( "I'm still running @ " + System.currentTimeMillis() );
}
}
Вы увидите ошибку переполнения стека:
Exception in thread "Thread-1" java.lang.StackOverflowError
и вы также увидите, что печатная нить продолжает счастливо печататься.
Также обратите внимание, что если поток EDT умирает, он перезапускается автоматически.