更新時(shí)間:2020-04-03 16:30:18 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽2862次
眾所周知,利用好多線(xiàn)程機(jī)制,可以大大提高系統(tǒng)整體的并發(fā)能力以及性能,而且線(xiàn)程間的切換和調(diào)度的成本小。因此,多線(xiàn)程是Java學(xué)習(xí)者必須掌握的語(yǔ)法重點(diǎn)。
1、進(jìn)程和線(xiàn)程
(1)進(jìn)程:是正在運(yùn)行的程序,是系統(tǒng)進(jìn)行資源分配和調(diào)用的獨(dú)立單位,每一個(gè)進(jìn)程都有它自己的內(nèi)存空間和系統(tǒng)資源。
(2)線(xiàn)程:是進(jìn)程中的單個(gè)順序控制流,是一條執(zhí)行路徑。單線(xiàn)程:一個(gè)進(jìn)程如果只有一條執(zhí)行路徑,則稱(chēng)為單線(xiàn)程程序。多線(xiàn)程:一個(gè)進(jìn)程如果有多條執(zhí)行路徑,則稱(chēng)為多線(xiàn)程程序。
2、實(shí)現(xiàn)多線(xiàn)程方式一:繼承Thread類(lèi)
(1)方法介紹
(2)實(shí)現(xiàn)步驟:
- 定義一個(gè)類(lèi)MyThread繼承Thread類(lèi)
- 在MyThread類(lèi)中重寫(xiě)run()方法
- 創(chuàng)建MyThread類(lèi)的對(duì)象
- 啟動(dòng)線(xiàn)程
(3)兩個(gè)小問(wèn)題
a、為什么要重寫(xiě)run()方法?
因?yàn)閞un()是用來(lái)封裝被線(xiàn)程執(zhí)行的代碼
b、run()方法和start()方法的區(qū)別?
run():封裝線(xiàn)程執(zhí)行的代碼,直接調(diào)用,相當(dāng)于普通方法的調(diào)用。start():?jiǎn)?dòng)線(xiàn)程;然后由JVM調(diào)用此線(xiàn)程的run()方法
3、設(shè)置和獲取線(xiàn)程名稱(chēng)
方法介紹:
4、線(xiàn)程優(yōu)先級(jí)
(1)線(xiàn)程調(diào)度
分時(shí)調(diào)度模型:所有線(xiàn)程輪流使用 CPU 的使用權(quán),平均分配每個(gè)線(xiàn)程占用 CPU 的時(shí)間片。搶占式調(diào)度模型:優(yōu)先讓優(yōu)先級(jí)高的線(xiàn)程使用 CPU,如果線(xiàn)程的優(yōu)先級(jí)相同,那么會(huì)隨機(jī)選擇一個(gè),優(yōu)先級(jí)高的線(xiàn)程獲取的 CPU 時(shí)間片相對(duì)多一些。Java使用的是搶占式調(diào)度模型。假如計(jì)算機(jī)只有一個(gè) CPU,那么 CPU 在某一個(gè)時(shí)刻只能執(zhí)行一條指令,線(xiàn)程只有得到CPU時(shí)間片,也就是使用權(quán),才可以執(zhí)行指令。所以說(shuō)多線(xiàn)程程序的執(zhí)行是有隨機(jī)性,因?yàn)檎l(shuí)搶到CPU的使用權(quán)是不一定的。
(2)優(yōu)先級(jí)相關(guān)方法
5、線(xiàn)程控制
相關(guān)方法
以上就是動(dòng)力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)的小編針對(duì)“Java基礎(chǔ)語(yǔ)法,Java多線(xiàn)程練習(xí)題”的內(nèi)容進(jìn)行的回答,希望對(duì)大家有所幫助,如有疑問(wèn),請(qǐng)?jiān)诰€(xiàn)咨詢(xún),有專(zhuān)業(yè)老師隨時(shí)為你服務(wù)。
相關(guān)閱讀
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ì)電話(huà)與您溝通安排學(xué)習(xí)
初級(jí) 202925
初級(jí) 203221
初級(jí) 202629
初級(jí) 203743