從65節(jié)到82節(jié),我們用了18篇文章討論并發(fā),本節(jié)進(jìn)行簡(jiǎn)要總結(jié)。
多線程開發(fā)有兩個(gè)核心問題,一個(gè)是競(jìng)爭(zhēng),另一個(gè)是協(xié)作。競(jìng)爭(zhēng)會(huì)出現(xiàn)線程安全問題,所以,本節(jié)首先總結(jié)線程安全的機(jī)制,然后是協(xié)作的機(jī)制。管理競(jìng)爭(zhēng)和協(xié)作是復(fù)雜的,所以Java提供了更高層次的服務(wù),比如并發(fā)容器類和異步任務(wù)執(zhí)行服務(wù),我們也會(huì)進(jìn)行總結(jié)。本節(jié)綱要如下:
線程安全的機(jī)制
線程的協(xié)作機(jī)制
容器類
任務(wù)執(zhí)行服務(wù)
線程安全的機(jī)制
線程表示一條單獨(dú)的執(zhí)行流,每個(gè)線程有自己的執(zhí)行計(jì)數(shù)器,有自己的棧,但可以共享內(nèi)存,共享內(nèi)存是實(shí)現(xiàn)線程協(xié)作的基礎(chǔ),但共享內(nèi)存有兩個(gè)問題,競(jìng)態(tài)條件和內(nèi)存可見性,之前章節(jié)探討了解決這些問題的多種思路:
使用synchronized
使用顯式鎖
使用volatile
使用原子變量和CAS
寫時(shí)復(fù)制
使用ThreadLocal
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動(dòng)安全 [無線安全]玩轉(zhuǎn)無線電——不安全的藍(lán)牙鎖 2017-07-26
- 消息隊(duì)列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標(biāo)分割】 2017-07-26
- 詞向量-LRWE模型-更好地識(shí)別反義詞同義詞 2017-07-26
- 從棧不平衡問題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實(shí)現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動(dòng)安全 Android端惡意鎖屏勒索應(yīng)用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來看看(二) 2017-07-26