版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、線程主講人:任亮今日內(nèi)容線程概述如何創(chuàng)建線程線程的生命周期并發(fā)同步線程間通信優(yōu)先級加入線程讓出線程守護線程死鎖線程概述進程:計算機中特定功能的程序在數(shù)據(jù)集上的一次運行。線程:線程是進程的一個單元。多線程:一個進程中有多個線程在同時運行,如迅雷下載,迅雷軟件的一次運行就是一個進程,那么在迅雷中可以同時下載多個電影,這就是多線程(每一個下載都是一個線程)Jvm是多線程的,在我們運行jvm的時候后臺會運行垃圾回收的線程,來清理沒有被引用的對象。線程的實現(xiàn)線程實現(xiàn)的第一種方式創(chuàng)建新執(zhí)行線程有兩種方法。一種方法是將類聲明為 Thread 的子類。該子類應(yīng)重寫 Thread 類的 run 方法。接下來可以
2、分配并啟動該子類的實例。線程啟動的 時候使用線程的start方法而不是run線程的實現(xiàn)線程實現(xiàn)的第二種方式創(chuàng)建線程的另一種方法是聲明實現(xiàn) Runnable 接口的類。該類然后實現(xiàn) run 方法。然后可以分配該類的實例,在創(chuàng)建 Thread 時作為一個參數(shù)來傳遞并啟動。線程的執(zhí)行原理線程的并發(fā)執(zhí)行通過多個線程不斷的切換CPU的資源,這個速度非???,我們感知不到,我們能感知到的就是三個線程在并發(fā)的執(zhí)行。線程的生命周期1.新建: 線程被new出來2.準備就緒:線程具有執(zhí)行的資格,即線程調(diào)用了start(),沒有執(zhí)行的權(quán)利3.運行:具備執(zhí)行的資格和具備執(zhí)行的權(quán)利4.阻塞:沒有執(zhí)行的資格和執(zhí)行權(quán)利5.銷
3、毀: 線程的對象變成垃圾,釋放資源。線程的生命周期并發(fā)互聯(lián)網(wǎng)的項目中存在著大量的并發(fā)的案例,如賣火車票,電商網(wǎng)站。范例:火車站有100張票,4個窗口同時買票。分析:4個窗口是4個線程同時在運行,100票是4個線程的共享資源。采用繼承Thread來實現(xiàn)并發(fā)針對線程的安全性問題,我們需要使用同步(就是要加鎖,共享資源只能一個人同時訪問)鎖。語法:synchronized(鎖對象)/操作共享資源的代碼同步代碼加在什么地方?1.代碼被多個線程訪問2.代碼中有共享的數(shù)據(jù)3.共享數(shù)據(jù)被多條語句操作。并發(fā)Synchronized同步代碼塊的鎖對象可以是任意類對象(線程的實現(xiàn)方式是使用繼承于Thread),這
4、個對象必須是線程類共享(靜態(tài)的)Synchronized是可以加在方法上,如果是靜態(tài)方法Synchronized的所對象就是類的類對象,如果不是靜態(tài)的方法,Synchronized如果加在對象方法上,那么他的鎖是this線程的休眠線程的休眠是很必要的,在做服務(wù)端的時候為了減少服務(wù)器的壓力我們需要休眠如果休眠是在同步代碼塊中執(zhí)行,休眠不會讓出鎖對象。線程間的通信生產(chǎn)者和消費者線程間的通信生產(chǎn)者生成水果,如果水果沒有被買走那么就不生產(chǎn)處于等待狀態(tài),如果水果被消費者買走就的時候消費者會通知生產(chǎn)者告訴他我們已經(jīng)把水果買走了請生產(chǎn),消費者同理,如果水果已經(jīng)生產(chǎn)出來那么就買走,買走之后再通知生產(chǎn)者水果已經(jīng)沒了請生產(chǎn)。 注意:1.線程間的通信共享數(shù)據(jù)一定要有同步代碼塊synchronized2.一定要有wait和notify,而且二者一定是成對出現(xiàn)。3.生產(chǎn)者和消費者的線程實現(xiàn)一定是在while(true)里面線程的優(yōu)先級我們可以通過public final void setPriority(intnewPriority)來設(shè)置線程的優(yōu)先級,但是優(yōu)先級并不是絕對的,只是先對來說比其他的線程得到CPU的資源機會多一些。加入線程join線程會搶先拿到CPU來執(zhí)行線程,然后其他的線程再來執(zhí)行等待線程當(dāng)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中標采購合同范例
- 正式職工合同范例
- 加油站儲油罐買賣合同范例
- 工廠防水工程施工合同范例
- 土地抵債合同范例
- 出租建設(shè)用地合同范例
- 小額裝修工程合同范例
- 加工食品銷售合同范例
- 房建混凝土澆筑合同范例
- 宣傳單合同范例
- 老年人睡眠障礙的護理(PPT課件)
- 會陰阻滯麻醉完整版PPT課件
- 《家庭禮儀》PPT課件
- 應(yīng)聘人員面試登記表(應(yīng)聘者填寫)
- T∕CAAA 005-2018 青貯飼料 全株玉米
- s鐵路預(yù)應(yīng)力混凝土連續(xù)梁(鋼構(gòu))懸臂澆筑施工技術(shù)指南
- 撥叉831006設(shè)計說明書
- 程序語言課程設(shè)計任意兩個高次多項式的加法和乘法運算
- 石油鉆井八大系統(tǒng)ppt課件
- 北師大版二年級數(shù)學(xué)上冊期末考試復(fù)習(xí)計劃
- 人教PEP版六年級英語上冊《Unit4_B_Let’s_learn教學(xué)設(shè)計》
評論
0/150
提交評論