public class ThreadDemo extends Thread {
@Override
public void run() {
for(int i = 0; i <= 5; i++) {
try {
System.out.println(currentThread().getName() + "---" + i);
sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
ThreadDemo t = new ThreadDemo();
t.setName("t");
t.start(); //列印的是t執行緒
t.run(); //列印主執行緒main
}
}
結果:
分析:
1 程式運行開始,jvm會自動創建執行緒main,也就是主執行緒
2 主執行緒在執行代碼時,創建一個執行緒,當執行緒呼叫start()后,就啟用了執行緒,
主執行緒繼續往下執行代碼,被啟用的執行緒內部會自動呼叫run方法(start0() 本地方法或者說底層作業系統),
所以此時run方法是在該執行緒內運行
3 實體.run()僅僅只是呼叫物件的方法,與普通方法無差別,并沒有啟動新的執行緒,所以該方法還是在main執行緒內使用
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/107440.html
標籤:Java
