區別一:
在於當程式呼叫start方法乙個新執行緒將會被建立,並且在run方法中的**將會在新執行緒上執行,
然而在你直接呼叫run方法的時候,程式並不會建立新執行緒,run方法內部的**將在當前執行緒上執行。
大多數情況下呼叫run方法是乙個bug或者變成失誤。
因為呼叫者的初衷是呼叫start方法去開啟乙個新的執行緒,這個錯誤可以被很多靜態**覆蓋工具檢測出來,比如與fingbugs. 如果你想要執行需要消耗大量時間的任務,你最好使用start方法,否則在你呼叫run方法的時候,你的主線程將會被卡住。
區別二:
一但乙個執行緒被啟動,你不能重複呼叫該thread物件的start方法,呼叫已經啟動執行緒的start方法將會報illegalstateexception異常, 而你卻可以重複呼叫run方法
總結:start:啟動執行緒,並呼叫執行緒中的 run 方法
run :執行該執行緒物件要執行的任務
java多執行緒start方法與run方法分析
演示圖 結果1 執行緒裡面的run執行 ping 執行緒裡面的run執行 結果二 執行緒裡面的run執行 執行緒裡面的run執行 ping 去掉start方法 package thread public class mian extends thread 結果唯一 執行緒裡面的run執行 ping ...
Java多執行緒run方法與start方法比較
一 start 方法與run 方法比較 1 start 當前執行緒呼叫start 方法,另乙個執行緒去執行run 方法。start方法不能多次執行。乙個執行緒執行完之後不能重新啟動。2 run 與普通方法一樣,可以重複呼叫。如果直接呼叫run方法,不會新建執行緒去執行run方法,會在當前執行緒中執行...
執行緒 run 和start 方法的區別
閒話少嘮,先舉例子,再做總結。建立乙個執行緒 thread t1 new thread t1.run 只是呼叫了乙個普通方法,並沒有啟動另乙個執行緒,程式還是會按照順序執行相應的 t1.start 則表示,重新開啟乙個執行緒,不必等待其他執行緒執行完,只要得到cup就可以執行該執行緒。舉個兩個例子對...