public class Test extends Thread{
public void hello(String s){
System.out.println(s);
}
public void run(){
hello("I’mrunning...");
}//endofrun()
public static void main(String [] args){
Test t=new Test();
System.out.println("always first");
t.start();
System.out.println("always second but why?");
}
}
Я запустил этот кусок кода 30 раз.Обработка ошибок в java
Почему «всегда второе, но почему?» всегда второй на консоли? Когда вызывается t.start(), у нас есть 2 потока. (2 стопки): основная нить и вторая нить. поэтому «i'am running» должен быть иногда вторым выходом на консоли. Когда я удаляю вывод «всегда первый», чем два выхода слева, ведем себя недетерминированным (так оно и должно быть)
так что не так в моих мыслях, почему System.out.println («всегда первый «); влияя на параллелизм?
Конечно, детерминированное поведение затрудняет тестирование. –