Java併發編程之線程啓動常用陷阱

Java併發編程之線程啓動常用陷阱

調用Thread的run方法而不是start

在創建和啓動線程時,一個常見的錯誤是調用線程的run()方法,而不是start(),代碼如下:

Thread myThread = new Thread(MyRunnable());
myThread .run();  //這裏應該調用start方法,而不是run方法

最初,你可能不會注意到任何東西,因爲Runnable的run()方法是按預期執行的。 但是,它不會由您剛剛創建的新線程執行。 相反,run()方法由創建線程的線程執行。 換句話說,該線程執行了以上兩行代碼。 要使新創建的線程myThread 調用MyRunnable實例的run()方法,必須調用myThread.start()方法。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章