【多執行緒總結(一)-基礎總結】
前言:
多執行緒在我們的程式開發過程中起著關鍵的作用,本篇部落格我們們從基本的知識開始講起,來共同分享一下多執行緒的知識
核心:
什麼是執行緒呢?我們們首先可以從程式來說,程式是指在系統中正在執行的一個應用程式,在計算機中,一個任務就是一個進行,在每一個程式內部至少要有一個執行緒在執行,一個程式可以有多個執行緒,比如像生活中的例項,檢票是一個程式,那麼每個檢票的人是執行緒.下面我們們來說建立執行緒的方式.
1.建立執行緒方式的有兩種:
方式一:繼承thread,重寫run方法,
方式二:實現runnable
但是我在書中看到,作者說準確的講,建立執行緒只有一種方式那就是構造thread類,而實現執行緒的執行單元則有兩種方式:
第一種:重寫thread的run方法,
第二種:實現runnable介面的run方法,並且將runnable例項用作構造thread的引數.
2.執行緒的生命週期:
new
runnable
running
blocked
terminated
新建—-就緒—執行—-阻塞—死亡,new的狀態通過start方法進入runnable狀態,runnable狀態必須呼叫start方法,此時才是真正的在jvm程式中建立了一個執行緒.running狀態除了不能到達new狀態,其他的狀態都可以到達.
3.runnable介面:
只定義了無參無返回值的run方法.
重寫thread類的run方法和實現runnable介面的run方法還有一個很重要的不同,那就是thread類的run方法是不能共享的,也就是說A執行緒不能把B執行緒的run方法當做自己的執行單元,而使用runnable介面很容易能實現這一點,使用同一個runnable的例項構造不同的thread例項.
4.在這裡,我們學到了守護執行緒
守護執行緒
守護執行緒是一類比較特殊的執行緒,一般用於處理一些後臺的工作.
守護執行緒設定,呼叫setDaemon方法將thread設定為守護執行緒,true代表守護執行緒,false代表正常執行緒.
守護執行緒的作用:
守護執行緒經常用作與執行一些後臺任務,因此有時它也被稱為後臺執行緒,當你希望關閉某執行緒的時候,或者退出JVM程式的時候,或者退出JVM程式的時候,一些執行緒能夠自動關閉,此時就可以考慮用守護執行緒為你完成這樣的工作.
5.說到了Thread API,那麼我們們來比較一下yield和sleep的區別;
sleep只會導致當前執行緒暫停指定的時間,沒有CPU時間片的消耗
yield只是對CPU排程器的一個提示,如果CPU排程器沒有忽略這個提示,他會導致執行緒上下文的切換.
sleep會使執行緒短暫block,會在給定的時間內釋放CPU資源
yield會使running狀態的thread進入runnable狀態
sleep幾乎百分之百的完成了給定時間的休眠,二yield的提示並不能一定擔保
一個執行緒sleep另一個執行緒呼叫interrupt會捕獲中斷訊號,二yield不會.
總結:
本篇部落格暫時講到這裡,下一篇部落格我們們來說執行緒安全與執行緒同步.
相關文章
- 最全java多執行緒學習總結1--執行緒基礎Java執行緒
- java多執行緒總結(系列一)Java執行緒
- iOS 多執行緒總結iOS執行緒
- Java 多執行緒 - 總結概述Java執行緒
- 【多執行緒總結(四)-三大性質總結】執行緒
- 多執行緒:執行緒池理解和使用總結執行緒
- 【多執行緒總結(二)-執行緒安全與執行緒同步】執行緒
- 2019Android多執行緒總結Android執行緒
- Java多執行緒詳解總結Java執行緒
- 4.2019Android多執行緒總結Android執行緒
- 多執行緒程式設計總結:一、認識多執行緒本質執行緒程式設計
- Java執行緒總結Java執行緒
- iOS 多執行緒:『GCD』詳盡總結iOS執行緒GC
- iOS 多執行緒:『RunLoop』詳盡總結iOS執行緒OOP
- 多執行緒(三)、執行緒池 ThreadPoolExecutor 知識點總結執行緒thread
- 多執行緒並行執行,然後彙總結果執行緒並行
- iOS 多執行緒:『NSOperation、NSOperationQueue』詳盡總結iOS執行緒
- 40 個 Java 多執行緒問題總結Java執行緒
- iOS多執行緒:『NSOperation、NSOperationQueue』詳盡總結iOS執行緒
- python多執行緒的優缺點總結Python執行緒
- 最全java多執行緒總結2--如何進行執行緒同步Java執行緒
- Java獲取多執行緒執行結果方式的歸納與總結Java執行緒
- 【多執行緒】常見問題簡單總結執行緒
- 多執行緒學習一(多執行緒基礎)執行緒
- 總結:iOS中多執行緒的經典崩潰iOS執行緒
- Java 多執行緒 | 併發知識問答總結Java執行緒
- 執行緒學習知識總結執行緒
- 程式執行緒篇——總結與提升執行緒
- Java-ThreadPool執行緒池總結Javathread執行緒
- IO流中「執行緒」模型總結執行緒模型
- 執行緒總結之一二三四五執行緒
- 建立執行緒知識點總結執行緒
- 多執行緒面試必備基礎知識彙總執行緒面試
- Java多執行緒程式設計基礎知識彙總Java執行緒程式設計
- 多執行緒系列(1),多執行緒基礎執行緒
- 面試系列-40個Java多執行緒問題總結面試Java執行緒
- C++知識點:對於多執行緒的總結C++執行緒
- 多執行緒基礎執行緒