目錄
- 1. 執行緒的基本概念
- 1.1 執行緒
- 1.2 執行緒狀態和生命周期
- 2. 創建執行緒的四種方法
- 2.1 繼承Thread類
- 2.2 實作Runnable介面
- 2.3 實作Callable介面
- 2.4 使用執行緒池
- 3. 參考資料
1. 執行緒的基本概念
1.1 執行緒
學過作業系統的同學應該不陌生,執行緒是計算機中的最小調度單元,一個行程可以有多個執行緒,執行并發操作,提高任務的運行效率
1.2 執行緒狀態和生命周期
- 執行緒狀態包括:
- 新建(new):執行緒創建而尚未啟動的階段;
- 就緒態(runnable/ready):執行緒已經啟動,等到CPU資源分配
- 運行態(running):執行緒分配到CPU資源,正式運動
- 阻塞態(blocked):在運行程序中由于存在資源缺乏等原因,進入阻塞態等到資源條件滿足,再次執行;
- 等待態(waiting):執行緒進入I/O等操作或者執行緒執行 sleep()、join() 或 wait(timeout) 方法時,,等待回應,這時候進入等待態,其他執行緒可接著執行;
- 超時等待(timed waiting):執行緒進入超時等待態類似于等待態,但是有時間限制,等待時間到了,執行緒會自動進入就緒態,等待CPU資源調度;
- 終止態(terminated):執行緒執行完畢或者出現例外,進入終止態,執行緒生命周期結束,
- 執行緒生命周期如圖所示:

- 3. 阻塞態 vs 等待態
- 阻塞態:因為某些資源問題而引起,執行緒在阻塞態的時候,其他執行緒無法執行,
- 等待態: 一般不是由于資源問題而是執行緒本身的操作而引起,執行緒在等待態的時候,其他執行緒可以執行,
2. 創建執行緒的四種方法
2.1 繼承Thread類
Java.lang.Thread類是java的執行緒類,類中包括一些執行緒基本資訊和執行緒操作函式,通過對Thread類的繼承,重寫run()方法,可以實作執行緒的創建,
2.2 實作Runnable介面
不繼承Thread類,而是初始化Thread類,實作Runnable介面,實作執行緒的創建,
2.3 實作Callable介面
Callable介面和Runnable介面類似,都是實作執行緒的創建,Callable介面可接受結果(有回傳值),且可以檢查例外,
2.4 使用執行緒池
使用執行緒池創建執行緒的優點如下所示:
- 減少每個任務的呼叫開銷
- 提供一種可行方法,限制和管理系統資源消耗
- 能夠提高執行緒異步執行的性能
兩種創建方式:
- ThreadPoolExecutor
- Executors
注:關于具體的代碼解釋,以后有機會再補充,各位也可以根據下面的參考博客進行學習,
3. 參考資料
參考博客-1
參考博客-2
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/555660.html
標籤:其他
下一篇:返回列表
