執行緒總結之一二三四五
1、一個概念:什麼是執行緒?
執行緒是作業系統能夠進行運算排程的最小單位。
它被包含在程式中間,是程式中的實際運作單位。
執行緒是程式的子集,一個程式有很多執行緒,每條執行緒並行執行不同的任務。不同的程式使用不同的記憶體空間,而所有的執行緒共享一片相同的記憶體空間。每個執行緒都擁有單獨的棧記憶體來儲存本地資料,
2、兩個模型:執行緒排程模型
分時排程模型和搶佔式排程模型。
對於單核CPU,多個執行緒要使用時,不能只給一個執行緒處理,所以作業系統會把CPU使用時間劃分成時間片分給執行緒輪流使用。就是分時排程模型。但有些執行緒權重大優先順序高,可以優先獲取到CPU時間片。屬於搶佔式排程模型。java採用搶佔排程模型。
3、三個要素:執行緒併發程式設計三要素
原子性:一個或多個操作是一個原子一樣不可分割,要麼成功要麼失敗。
可見性:一個執行緒對共享資料的改變,其他執行緒立刻可見。
有序性:程式執行的順序按照程式碼順序執行(處理器可能對指令重排,但是在單執行緒下不管如何排一定是;執行結果一樣才可以重排)
出現執行緒安全問題的三個原因:
a、執行緒切換帶來的原子性問題
b、快取導致的可見性問題
c、編譯優化帶來的有序性問題
4、四種建立方式:執行緒建立方式
1、通過new 一個繼承了Thread的子類物件的方式建立。
2、通過實現了Runnable介面的子類物件,傳入Thread的建構函式來建立。
3、通過實現了Callable介面的類建立物件,然後依據該物件建立FutureTask物件,再用FutureTask物件傳遞給Thread類建構函式來建立。
4、使用執行緒池來建立
5、五種生命形態:執行緒生命週期的五種狀態
1、新建狀態
2、可執行狀態
3、執行狀態
4、阻塞狀態
5、死亡狀態
相關文章
- Java執行緒總結Java執行緒
- 【多執行緒總結(二)-執行緒安全與執行緒同步】執行緒
- 多執行緒:執行緒池理解和使用總結執行緒
- iOS 多執行緒總結iOS執行緒
- 【多執行緒總結(一)-基礎總結】執行緒
- Java 多執行緒 - 總結概述Java執行緒
- Java多執行緒之一Java執行緒
- 多執行緒(三)、執行緒池 ThreadPoolExecutor 知識點總結執行緒thread
- 最全java多執行緒總結2--如何進行執行緒同步Java執行緒
- 2019Android多執行緒總結Android執行緒
- Java多執行緒詳解總結Java執行緒
- 執行緒學習知識總結執行緒
- java多執行緒總結(系列一)Java執行緒
- 4.2019Android多執行緒總結Android執行緒
- 程式執行緒篇——總結與提升執行緒
- Java-ThreadPool執行緒池總結Javathread執行緒
- IO流中「執行緒」模型總結執行緒模型
- 建立執行緒知識點總結執行緒
- 【多執行緒總結(四)-三大性質總結】執行緒
- 多執行緒並行執行,然後彙總結果執行緒並行
- 最全java多執行緒學習總結1--執行緒基礎Java執行緒
- iOS 多執行緒:『GCD』詳盡總結iOS執行緒GC
- iOS 多執行緒:『RunLoop』詳盡總結iOS執行緒OOP
- 執行緒的幾種狀態總結執行緒
- 多執行緒程式設計總結:一、認識多執行緒本質執行緒程式設計
- Java獲取多執行緒執行結果方式的歸納與總結Java執行緒
- iOS 多執行緒:『NSOperation、NSOperationQueue』詳盡總結iOS執行緒
- 40 個 Java 多執行緒問題總結Java執行緒
- 【總結】瀏覽器的執行緒與程式瀏覽器執行緒
- iOS多執行緒:『NSOperation、NSOperationQueue』詳盡總結iOS執行緒
- python多執行緒的優缺點總結Python執行緒
- Python 多執行緒無用?深入總結 二(深入瞭解GIL 執行緒守護 執行緒程式CPU關係)Python執行緒
- 案例分析|執行緒池相關故障梳理&總結執行緒
- 【多執行緒】常見問題簡單總結執行緒
- 最全java多執行緒總結3——瞭解阻塞佇列和執行緒安全集合不Java執行緒佇列
- 總結:iOS中多執行緒的經典崩潰iOS執行緒
- Java 多執行緒 | 併發知識問答總結Java執行緒
- Win32執行緒——等待另一個執行緒結束Win32執行緒