執行緒總結之一二三四五
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執行緒
- 執行緒併發總結執行緒
- 【多執行緒總結(一)-基礎總結】執行緒
- iOS多執行緒程式設計:執行緒同步總結iOS執行緒程式設計
- Java 多執行緒 - 總結概述Java執行緒
- JAVA 多執行緒總結(一)Java執行緒
- Android多執行緒總結Android執行緒
- MYSQL執行緒池總結(一)MySql執行緒
- MySQL執行緒池總結(二)MySql執行緒
- Java多執行緒Queue總結Java執行緒
- Java多執行緒之一Java執行緒
- 最全java多執行緒總結2--如何進行執行緒同步Java執行緒
- 多執行緒(三)、執行緒池 ThreadPoolExecutor 知識點總結執行緒thread
- Java多執行緒詳解總結Java執行緒
- java多執行緒總結(系列一)Java執行緒
- 程式執行緒篇——總結與提升執行緒
- 建立執行緒知識點總結執行緒
- IO流中「執行緒」模型總結執行緒模型
- 執行緒學習知識總結執行緒
- 設定最佳執行緒數總結執行緒
- windows多執行緒同步互斥--總結Windows執行緒
- 【多執行緒總結(四)-三大性質總結】執行緒
- 多執行緒並行執行,然後彙總結果執行緒並行
- 執行緒同步的情景之一執行緒
- 最全java多執行緒學習總結1--執行緒基礎Java執行緒
- 多執行緒下的程式同步(執行緒同步問題總結篇)執行緒
- iOS 多執行緒:『RunLoop』詳盡總結iOS執行緒OOP
- Java-ThreadPool執行緒池總結Javathread執行緒
- iOS 多執行緒:『GCD』詳盡總結iOS執行緒GC
- 執行緒的幾種狀態總結執行緒
- Swift多執行緒程式設計總結Swift執行緒程式設計
- Java中守護執行緒的總結Java執行緒
- iOS多執行緒:『GCD』詳盡總結iOS執行緒GC
- 多執行緒程式設計總結:一、認識多執行緒本質執行緒程式設計