創建線程的兩種方式及區別

1.創建線程的兩種方式及區別
採用繼承Thread類方式:
(1)優點:編寫簡單,如果需要訪問當前線程,無需使用Thread.currentThread()方法,直接使用this,即可獲得當前線程。
(2)缺點:因爲線程類已經繼承了Thread類,所以不能再繼承其他的父類。
採用實現Runnable接口方式:
(1)優點:線程類只是實現了Runable接口,還可以繼承其他的類。在這種方式下,可以多個線程共享同一個目標對象,所以非常適合多個相同線程來處理同一份資源的情況,從而可以將CPU代碼和數據分開,形成清晰的模型,較好地體現了面向對象的思想。
(2)缺點:編程稍微複雜,如果需要訪問當前線程,必須使用Thread.currentThread()方法。

2…currentThread和this的區別
①Thread.currentThread表示當前代碼段正在被哪個線程調用的相關信息。
②this表示的是當前對象,與Thread.currentThread有很大的區別。

3.Thread使用start和run方法啓動線程有什麼區別
1.start()方法來啓動線程,真正實現了多線程運行,這時無需等待run方法體bai代碼執行完畢而直接繼續執行下面的代碼:通過調用Thread類的start()方法來啓動一個線程,
這時此線程是處於就緒狀態,並沒有運行。然後通過此Thread類調用方法run()來完成其運行操作的,這裏方法run()稱爲線程體,它包含了要執行的這個線程的內容,Run方
法運行結束,此線程終止,而CPU再運行其它線程,
2.run()方法當作普通方法的方式調用,程序還是要順序執行,還是要等待run方法體執行完畢後纔可繼續執行下面的代碼:
而如果直接用Run方法,這只是調用一個方法而已,程序中依然只有主線程–這一個線程,其程序執行路徑還是隻有一條,這樣就沒有達到寫線程的目的。

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