黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專(zhuān)注Java教育14年 全國(guó)咨詢(xún)/投訴熱線(xiàn):400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁(yè) 學(xué)習(xí)攻略 Java學(xué)習(xí) Java多線(xiàn)程與并發(fā)視頻之學(xué)習(xí)總結(jié)

Java多線(xiàn)程與并發(fā)視頻之學(xué)習(xí)總結(jié)

更新時(shí)間:2021-03-19 15:15:07 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽2022次

線(xiàn)程是進(jìn)程中的一個(gè)獨(dú)立控制單元,線(xiàn)程在控制著進(jìn)程的執(zhí)行,一個(gè)進(jìn)程中至少有一個(gè)線(xiàn)程。多線(xiàn)程可以更好地利用cpu的資源,線(xiàn)程之間還能進(jìn)行數(shù)據(jù)共享。在IT中,一個(gè)線(xiàn)程是指進(jìn)程中的一個(gè)執(zhí)行流程,一個(gè)進(jìn)程可以運(yùn)行多個(gè)線(xiàn)程,IT中每個(gè)線(xiàn)程都有一個(gè)調(diào)用棧,即使不在程序中創(chuàng)建任何新的線(xiàn)程,也有一個(gè)main()方法運(yùn)行在一個(gè)線(xiàn)程內(nèi),稱(chēng)為主線(xiàn)程,一旦創(chuàng)建一個(gè)新的線(xiàn)程,就產(chǎn)生一個(gè)新的調(diào)用棧。通過(guò)該專(zhuān)題課程的系統(tǒng)學(xué)習(xí),讓大家一次性搞明白IT中的多線(xiàn)程。

零基礎(chǔ)學(xué)習(xí)Java多線(xiàn)程與并發(fā),推薦動(dòng)力節(jié)點(diǎn)的Java多線(xiàn)程視頻教程,帶你一次搞明白Java多線(xiàn)程高并發(fā)

課程目標(biāo):通過(guò)本系列課程的學(xué)習(xí),一次性搞明白多線(xiàn)程,提升自身技術(shù)能力與價(jià)值。

適用人群:具有IT基礎(chǔ)的人群,希望系統(tǒng)學(xué)習(xí)IT多線(xiàn)程的人群。

java多線(xiàn)程與并發(fā)視頻

1.計(jì)算機(jī)系統(tǒng)

使用高速緩存來(lái)作為內(nèi)存與處理器之間的緩沖,將運(yùn)算需要用到的數(shù)據(jù)復(fù)制到緩存中,讓計(jì)算能快速進(jìn)行;當(dāng)運(yùn)算結(jié)束后再?gòu)木彺嫱交貎?nèi)存之中,這樣處理器就無(wú)需等待緩慢的內(nèi)存讀寫(xiě)了。

緩存一致性:多處理器系統(tǒng)中,因?yàn)楣蚕硗恢鲀?nèi)存,當(dāng)多個(gè)處理器的運(yùn)算任務(wù)都設(shè)計(jì)到同一塊內(nèi)存區(qū)域時(shí),將可能導(dǎo)致各自的緩存數(shù)據(jù)不一致的情況,則同步回主內(nèi)存時(shí)需要遵循一些協(xié)議。

亂序執(zhí)行優(yōu)化:為了使得處理器內(nèi)部的運(yùn)算單位能盡量被充分利用。

2.Java內(nèi)存模型

目標(biāo)是定義程序中各個(gè)變量的訪(fǎng)問(wèn)規(guī)則。(包括實(shí)例字段、靜態(tài)字段和構(gòu)成數(shù)組的元素,不包括局部變量和方法參數(shù))

所有的變量都存儲(chǔ)在主內(nèi)存中(虛擬機(jī)內(nèi)存的一部分)。

每條線(xiàn)程都由自己的工作內(nèi)存,線(xiàn)程的工作內(nèi)存中保存了該線(xiàn)程使用到的變量的主內(nèi)存副本拷貝,線(xiàn)程對(duì)變量的所有操作都必須在工作內(nèi)存中進(jìn)行,而不能直接讀寫(xiě)主內(nèi)存中的變量。

線(xiàn)程之間無(wú)法直接訪(fǎng)問(wèn)對(duì)方的工作內(nèi)存中的變量,線(xiàn)程間變量的傳遞均需要通過(guò)主內(nèi)存來(lái)完成。

內(nèi)存間交互操作:

Lock(鎖定):作用于主內(nèi)存中的變量,把一個(gè)變量標(biāo)識(shí)為一條線(xiàn)程獨(dú)占的狀態(tài)。

Read(讀取):作用于主內(nèi)存中的變量,把一個(gè)變量的值從主內(nèi)存?zhèn)鬏數(shù)骄€(xiàn)程的工作內(nèi)存中。

Load(加載):作用于工作內(nèi)存中的變量,把read操作從主內(nèi)存中得到的變量的值放入工作內(nèi)存的變量副本中。

Use(使用):作用于工作內(nèi)存中的變量,把工作內(nèi)存中一個(gè)變量的值傳遞給執(zhí)行引擎。

Assign(賦值):作用于工作內(nèi)存中的變量,把一個(gè)從執(zhí)行引擎接收到的值賦值給工作內(nèi)存中的變量。

Store(存儲(chǔ)):作用于工作內(nèi)存中的變量,把工作內(nèi)存中的一個(gè)變量的值傳送到主內(nèi)存中。

Write(寫(xiě)入):作用于主內(nèi)存中的變量,把store操作從工作內(nèi)存中得到的變量的值放入主內(nèi)存的變量中。

Unlock(解鎖):作用于主內(nèi)存中的變量,把一個(gè)處于鎖定狀態(tài)的變量釋放出來(lái),之后可被其它線(xiàn)程鎖定。

規(guī)則:

不允許read和load、store和write操作之一單獨(dú)出現(xiàn)。

不允許一個(gè)線(xiàn)程丟棄最近的assign操作,變量在工作內(nèi)存中改變了之后必須把該變化同步回主內(nèi)存中。

不允許一個(gè)線(xiàn)程沒(méi)有發(fā)生過(guò)任何assign操作把數(shù)據(jù)從線(xiàn)程的工作內(nèi)存同步回主內(nèi)存中。

一個(gè)新的變量只能在主內(nèi)存中誕生。

一個(gè)變量在同一時(shí)刻只允許一條線(xiàn)程對(duì)其進(jìn)行l(wèi)ock操作,但可以被同一條線(xiàn)程重復(fù)執(zhí)行多次。

如果對(duì)一個(gè)變量執(zhí)行l(wèi)ock操作,將會(huì)清空工作內(nèi)存中此變量的值,在執(zhí)行引擎使用這個(gè)變量前,需要重新執(zhí)行read、load操作。

如果一個(gè)變量事先沒(méi)有被lock操作鎖定,則不允許對(duì)它執(zhí)行unlock操作。

8.對(duì)一個(gè)變量執(zhí)行unlock操作前,必須先把該變量同步回主內(nèi)存中。

3.volatile型變量

保證此變量對(duì)所有線(xiàn)程的可見(jiàn)性。每條線(xiàn)程使用此類(lèi)型變量前都需要先刷新,執(zhí)行引擎看不到不一致的情況。

運(yùn)算結(jié)果并不依賴(lài)變量的當(dāng)前值、或者確保只有單一的線(xiàn)程修改變量的值。

變量不需要與其他的狀態(tài)變量共同參與不變約束。

禁止指令重排序優(yōu)化。普通的變量?jī)H保證在方法執(zhí)行過(guò)程中所有依賴(lài)賦值結(jié)果的地方都能獲取到正確的結(jié)果。而不能保證賦值操作的順序與程序代碼中的順序一致。

load必須與use同時(shí)出現(xiàn);assign和store必須同時(shí)出現(xiàn)。

4.原子性、可見(jiàn)性與有序性

原子性:基本數(shù)據(jù)類(lèi)型的訪(fǎng)問(wèn)讀寫(xiě)是具備原子性的,synchronized塊之間的操作也具備原子性。

可見(jiàn)性:指當(dāng)一個(gè)線(xiàn)程修改了共享變量的值,其他線(xiàn)程能夠立即得知這個(gè)修改。synchronized(規(guī)則8)和final可以保證可見(jiàn)性。Final修飾的字段在構(gòu)造器中一旦被初始化完成,并且構(gòu)造器沒(méi)有把this的引用傳遞出去,那么在其他線(xiàn)程中就能看見(jiàn)final字段的值。

有序性:volatile本身包含了禁止指令重排序的語(yǔ)義,而synchronized則是由規(guī)則5獲得的,這個(gè)規(guī)則決定了持有同一個(gè)所的兩個(gè)同步塊只能串行地進(jìn)入。

5.先行發(fā)生原則

IT內(nèi)存模型中定義的兩項(xiàng)操作之間的偏序關(guān)系,如果操作A先行發(fā)生于操作B,其實(shí)就是說(shuō)在發(fā)生操作B之前,操作A產(chǎn)生的影響能被操作B觀察到。

程序次序規(guī)則:在一個(gè)線(xiàn)程內(nèi),按照代碼控制流順序,在前面的操作先行發(fā)生于后面的操作。

管程鎖定規(guī)則:一個(gè)unlock操作先行發(fā)生于后面對(duì)同一個(gè)鎖的lock操作。

Volatile變量規(guī)則:對(duì)一個(gè)volatile變量的寫(xiě)操作先行發(fā)生于后面對(duì)這個(gè)變量的讀操作。

線(xiàn)程啟動(dòng)規(guī)則:Thread對(duì)象的start()方法先行發(fā)生于此線(xiàn)程的每個(gè)操作。

線(xiàn)程終止規(guī)則:線(xiàn)程中的所有操作都先行發(fā)生于對(duì)此線(xiàn)程的終止檢測(cè)。

線(xiàn)程中斷規(guī)則:對(duì)線(xiàn)程的interrupt()方法的調(diào)用先行發(fā)生于被中斷線(xiàn)程的代碼檢測(cè)中斷事件的發(fā)生。

對(duì)象終結(jié)過(guò)則:一個(gè)對(duì)象的初始化完成先行發(fā)生于它的finalize()方法的開(kāi)始。

傳遞性:如果操作A先行發(fā)生于操作B,操作B現(xiàn)象發(fā)生于操作C,那么就可以得出操作A先行發(fā)生于操作C的結(jié)論。

時(shí)間上的先后順序與先行發(fā)生原則之間基本上沒(méi)有太大的關(guān)系。

6.線(xiàn)程實(shí)現(xiàn)

使用內(nèi)核線(xiàn)程實(shí)現(xiàn):

內(nèi)核線(xiàn)程Kernel Thread:直接由操作系統(tǒng)內(nèi)核支持的線(xiàn)程,這種線(xiàn)程由內(nèi)核類(lèi)完成線(xiàn)程切換,內(nèi)核通過(guò)操縱調(diào)度器對(duì)線(xiàn)程進(jìn)行調(diào)度,并負(fù)責(zé)將線(xiàn)程的任務(wù)映射到各個(gè)處理器上。

輕量級(jí)進(jìn)程Light Weight Process:每個(gè)輕量級(jí)進(jìn)程都由一個(gè)內(nèi)核線(xiàn)程支持。

局限性:各種進(jìn)程操作都需要進(jìn)行系統(tǒng)調(diào)用(系統(tǒng)調(diào)用代價(jià)相對(duì)較高,需要在用戶(hù)態(tài)和內(nèi)核態(tài)中來(lái)回切換);輕量級(jí)進(jìn)程要消耗一定的內(nèi)核資源,一次一個(gè)系統(tǒng)支持輕量級(jí)進(jìn)程的數(shù)量是有限的。

使用用戶(hù)線(xiàn)程實(shí)現(xiàn):

用戶(hù)線(xiàn)程:完全建立在用戶(hù)空間的線(xiàn)程庫(kù)上,系統(tǒng)內(nèi)核不能直接感知到線(xiàn)程存在的實(shí)現(xiàn)。用戶(hù)線(xiàn)程的建立、同步、銷(xiāo)毀和調(diào)度完全在用戶(hù)態(tài)中完成,不需要內(nèi)核的幫助。所有的線(xiàn)程操作都需要用戶(hù)程序自己處理。

混合實(shí)現(xiàn):

將內(nèi)核線(xiàn)程和用戶(hù)線(xiàn)程一起使用的方式。操作系統(tǒng)提供支持的輕量級(jí)進(jìn)程則作為用戶(hù)線(xiàn)程和內(nèi)核線(xiàn)程之間的橋梁。

Sun JDK,它的Windows版和Linux版都是使用一對(duì)一的線(xiàn)程模型來(lái)實(shí)現(xiàn)的,一條IT線(xiàn)程映射到一條輕量級(jí)進(jìn)程之中。

以上就是動(dòng)力節(jié)點(diǎn)Java培訓(xùn)機(jī)構(gòu)的小編針對(duì)“Java多線(xiàn)程與并發(fā)視頻之學(xué)習(xí)總結(jié)”的內(nèi)容進(jìn)行的回答,希望對(duì)大家有所幫助,如有疑問(wèn),請(qǐng)?jiān)诰€(xiàn)咨詢(xún),有專(zhuān)業(yè)老師隨時(shí)為你服務(wù)。

提交申請(qǐng)后,顧問(wèn)老師會(huì)電話(huà)與您溝通安排學(xué)習(xí)

免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 日韩在线毛片 | 成人人观看的免费毛片 | 国产无圣光高清一区二区 | 国产自产一c区 | 不卡的在线视频免费观看 | 美女国内精品自产拍在线播放 | 亚洲国产91在线 | 综合久久99| 丁香欧美 | 在线观看国产日本 | 国产精品久久久久久久y | 精品在线观看一区 | 欧美乱人伦中文字幕在线不卡 | 欧美一级手机免费观看片 | 中文字幕在线视频观看 | 成年午夜一级毛片视频 | 欧美一级黄色片视频 | 国产一区二区免费视频 | 天天射天天草 | 成人国产片免费 | 亚洲激情专区 | 天天看天天摸色天天综合网 | 一二三四视频社区在线播放中国 | 成年网站在线观看 | 日日摸日日 | 国产美女高清一级a毛片 | 日韩视频免费在线观看 | 亚洲一区二区免费视频 | 羞羞色在线观看 | 中国一级黄色录像片 | 男人边吃奶边爱边做视频刺激 | 国产精品免费入口视频 | 欧美极度极度另类 | 国产不卡一区二区三区免费视 | 欧美午夜激情影院 | 91精品国产高清久久久久久io | 久草视频在线免费 | 免费观看a级毛片在线播放 免费观看a级完整视频 | 亚洲免费中文 | 久久久久精彩视频 | 国产福利一区二区 |