這是一個非常刁鉆和狡猾的問題。請記住:線程類的構造方法、靜態塊是被 new這個線程類所在的線程所調用的,而 run 方法里面的代碼才是被線程自身所調用的。
如果說上面的說法讓你感到困惑,那么我舉個例子,假設 Thread2 中 new 了Thread1,main 函數中 new 了 Thread2,那么:
1. Thread2 的構造方法、靜態塊是 main 線程調用的,Thread2 的 run()方法是Thread2 自己調用的
2. Thread1 的構造方法、靜態塊是 Thread2 調用的,Thread1 的 run()方法是Thread1 自己調用的