Для нижеприведенной программы при запуске и отладке на eclipse приходят разные выходы.Выполнение метода Thread run(), отличное от Run и Debug в eclipse
public class MyClass implements Runnable {
public static void main (String[] args) throws Exception {
Thread t = new Thread(new MyClass());
t.start();
System.out.print("Started");
t.join();
System.out.print("Complete");
}
public void run() {
for (int i = 0; i < 4; i++) {
System.out.print(i);
}
}
}
При выполнении этого в качестве приложения Java ВЫХОД является
Started0123Complete
При проверке в отладки Режим ВЫХОД является
0123StartedComplete
Может кто-нибудь помочь в этом? это из-за двух потоков? main thread
и поток, который начинается с t.start()
. Если да, то почему выполнение основного потока занимает больше приоритета для завершения в первую очередь?
Благодаря
Нет никакой гарантии, как это будет работать в режиме отладки/обычного режима. Если вы запускаете его несколько раз в каждом режиме, вы увидите разные выходы. – Kon
Я буквально пробовал в 5,6 раз такой же выход. – NeverGiveUp161
5 или 6 раз ничего, запустите это в цикле, который выполняет 1000 + раз, вы в конце концов увидите другой вывод – chancea