我真的很困惑多線程。我知道這個事實多線程優先輸出不清除
「線程是不可預知的」
這是否事實,只保存線程的優先級相同?如果不是,那麼需要設置線程的優先級。
我的意思是想驗證碼:
public class Threadsync implements Runnable{
Thread t;
String str;
public Threadsync(String name)
{
this.str=name;
this.t=new Thread(this,name);
this.t.start();
this.t.setPriority(10);
}
public void run()
{
System.out.println("hello "+str);
}
public static void main(String[] args)
{
new Threadsync("thread1"); //1
new Threadsync("thread2"); //2
System.out.println("world"); //3
}
}
這是我的代碼,我得到了輸出 你好線程1 世界 你好線程2
有關線程1和線程,但沒有混亂,爲什麼主線程輸出消息world
在thread2輸出消息hello thread2
之前,即使thread2的優先級比主線程高兩倍。 在此先感謝。詳細的解釋將是非常可觀的
如果您在啓動之前調用setPriority會發生什麼? – Julien
@Julien沒有變化:( –
但它有趣的測試:) – Julien