更新時(shí)間:2021-05-18 10:44:04 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽1277次
(1)進(jìn)程:進(jìn)程是操作系統(tǒng)的基礎(chǔ),是一次程序的執(zhí)行,是一個(gè)程序及其數(shù)據(jù)在處理機(jī)上順序執(zhí)行時(shí)所發(fā)生的活動(dòng),是程序在一個(gè)數(shù)據(jù)集合上運(yùn)行的過(guò)程,他是系統(tǒng)進(jìn)行資源分配和調(diào)度的一個(gè)獨(dú)立單位。
(2)線程:線程可以理解為進(jìn)程中獨(dú)立運(yùn)行的子任務(wù),線程只能歸屬于一個(gè)進(jìn)程并且它只能訪問(wèn)該進(jìn)程所擁有的資源。
(1)繼承Thread類(lèi),該類(lèi)在源碼實(shí)現(xiàn)上,也是實(shí)現(xiàn)了Runnable接口,使用該類(lèi)最大的局限性就是java不支持多繼承。
(2)實(shí)現(xiàn)Runnable接口.
(1)currentThread():返回代碼段正在被哪個(gè)線程調(diào)用的信息。
(2)isAlive():判斷當(dāng)前線程是否處于活動(dòng)狀態(tài)。
(3)sleep():當(dāng)前線程休眠。
(4)getId():獲取當(dāng)前線程的唯一標(biāo)識(shí)。
(1)使用退出標(biāo)志,是線程正常退出,也就是當(dāng)run方法完成后線程退出。
(2)使用stop方法強(qiáng)行終止線程,不推薦此方法,因?yàn)閟top和suspend、resume方法都是作廢過(guò)期的方法,使用將產(chǎn)生不可預(yù)期的結(jié)果。
(3)使用interrupt方法中斷線程。
(1)suspend():暫停線程
(2)resume():恢復(fù)暫停線程的執(zhí)行
缺點(diǎn):這兩個(gè)方法,使用不當(dāng),極易造成公共的同步方法被獨(dú)占,使得其它線程無(wú)法訪問(wèn)。還會(huì)出現(xiàn)因?yàn)榫€程暫停而導(dǎo)致數(shù)據(jù)不同步的情況
這個(gè)方法的作用是放棄當(dāng)前的CPU資源,將它讓給其它的任務(wù)去占用CPU執(zhí)行時(shí)間,但放棄的時(shí)間不確定,有可能剛剛放棄,馬上又獲得CPU時(shí)間片。
(1)在操作系統(tǒng)中,線程可以劃分優(yōu)先級(jí),優(yōu)先級(jí)較高的線程得到的CPU資源較多,也就是CPU優(yōu)先執(zhí)行優(yōu)先級(jí)較高的線程對(duì)象中任務(wù)。在java中,線程的優(yōu)先級(jí)分為1~10這10個(gè)等級(jí)。如果超出,拋出異常
(2)線程優(yōu)先級(jí)的繼承性:在java中,線程的優(yōu)先級(jí)具有繼承性,比如A線程啟動(dòng)B線程,則B線程跟A線程的優(yōu)先級(jí)是一樣的。
(3)優(yōu)先級(jí)具有規(guī)則性和隨機(jī)性:高優(yōu)先級(jí)的線程總是大部分先執(zhí)行完,但不代表高優(yōu)先級(jí)的線程總是每一次都先執(zhí)行完。
在java線程中,有兩種線程,一種是用戶(hù)線程。一種是守護(hù)線程,守護(hù)線程是一種特殊的線程,當(dāng)進(jìn)程中不存在非守護(hù)線程了,則守護(hù)線程自動(dòng)銷(xiāo)毀。典型的守護(hù)線程就是垃圾會(huì)收線程
以上就是動(dòng)力節(jié)點(diǎn)小編介紹的"Java多線程編程核心技術(shù)總結(jié)",希望對(duì)大家有幫助,如有疑問(wèn),請(qǐng)?jiān)诰€咨詢(xún),有專(zhuān)業(yè)老師隨時(shí)為您服務(wù)。
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)