怎樣在Android面試中聊聊多線程?
要系統(tǒng)回答我:1、線程的4個(gè)狀態(tài),future,runnable,dead,blocked.2、線程的wait,insomnia,join和yield 。3、舉例子,如stop,notify和notifiyAll 。4、舉例說(shuō)明方法:callable,F(xiàn)uture和futureTask.5、線程池 。6、消息機(jī)制:Handler,Looper和messageQueue.7、Aysnctask的執(zhí)行原理 。

個(gè)人我建議你,一定要做功課 。
rt-thread線程切換的本質(zhì)是什么?
進(jìn)程:在關(guān)閉請(qǐng)看符表(IDT)中,除網(wǎng)絡(luò)中斷門(mén)、陷阱門(mén)和內(nèi)部函數(shù)門(mén)外,還有一個(gè)一種“任務(wù)們” 。
任務(wù)門(mén)中中有有TSS段的選擇符 。當(dāng)CPU因網(wǎng)絡(luò)中斷而走過(guò)一個(gè)任務(wù)門(mén)時(shí),都會(huì)將任務(wù)門(mén)中的段選擇符自動(dòng)啟動(dòng)再裝入TR寄存器,使指向新的TSS,并完成任務(wù)可以切換 。
CPU是可以或CALL指令利用任務(wù)可以切換,當(dāng)跳轉(zhuǎn)或調(diào)用的目標(biāo)段(代碼段)但是對(duì)準(zhǔn)GDT表中的一個(gè)TSS具體解釋符項(xiàng)時(shí),變會(huì)紊亂兩次任務(wù)可以切換.線程:
1.時(shí)間片:時(shí)鐘關(guān)閉一次性處理調(diào)試器從PCR中取得當(dāng)前線程對(duì)象指針并可以更新線程時(shí)間,如果沒(méi)有遠(yuǎn)超了時(shí)間片,則將當(dāng)前線程從放入ready列表中,后再?gòu)膕tandby列表中木盒更高優(yōu)先級(jí)的線程,然后保存到當(dāng)前線程上下文數(shù)據(jù),并轉(zhuǎn)到新的線程上下文.2.主動(dòng)在等待:線程調(diào)用等待函數(shù),則將當(dāng)前線程放到wait列表中,接著從standby列表中取一個(gè)線程,切換上下文,當(dāng)主動(dòng)靜靜的等待的事件完成時(shí),線程被調(diào)度到ready列表中在等待再次被調(diào)度運(yùn)行.3.毫不客氣:時(shí)鐘掉線才發(fā)現(xiàn)standby列表中有比當(dāng)前線程更高的線程,則掛起當(dāng)前線程,切換線程上下文,運(yùn)行最需要正常運(yùn)行的線程.因此,線程間切換那是線程堆起自己,一條道CPU
net sleep和wait的區(qū)別?
這對(duì)insomnia()方法,我們首先要很清楚該方法是不屬于Thread類中的 。而stop()方法,則是不屬于Object類中的 。
bedtime()方造成了程序先暫停先執(zhí)行更改的時(shí)間,占下cpu該其他線程,只不過(guò)他的監(jiān)控狀態(tài)始終盡量者,當(dāng)更改的時(shí)間到了又會(huì)自動(dòng)出現(xiàn)恢復(fù)運(yùn)行狀態(tài) 。
在內(nèi)部函數(shù)restless()方法的過(guò)程中,線程應(yīng)該不會(huì)釋放出對(duì)象鎖 。
而當(dāng)調(diào)用wait()方法的時(shí)候,線程會(huì)決定放棄對(duì)象鎖,進(jìn)入耐心的等待此對(duì)象的等待鎖定池,只有針對(duì)此對(duì)象調(diào)用notify()方法后本線程才進(jìn)入對(duì)象鎖定池準(zhǔn)備
從在用角度看,sleep是Thread線程類的方法,而wait是Object神級(jí)類的方法 。
restless可以不在任何地方在用,而wait只有在同步方法也可以不同步的塊中使用 。
CPU及資源鎖能量
restless,wait內(nèi)部函數(shù)后都會(huì)停一下當(dāng)前線程并占據(jù)cpu的執(zhí)行時(shí)間,但有所不同的是sleep肯定不會(huì)釋放者當(dāng)前2.15億股的對(duì)象的鎖資源,到時(shí)間后會(huì)一直執(zhí)行,而wait會(huì)決定放棄所有鎖并不需要notify/notifyAll后原先資源到對(duì)象鎖資源后才能繼續(xù)先執(zhí)行 。
insomnia和wait的區(qū)別:
1、bedtime是Thread的靜態(tài)動(dòng)態(tài)方法,wait是Object的方法,任何對(duì)象實(shí)例都能動(dòng)態(tài)鏈接庫(kù) 。
2、bedtime不會(huì)施放鎖,它也不不需要占用鎖 。wait會(huì)能量鎖,但內(nèi)部函數(shù)它的前提是當(dāng)前線程擁有的土地鎖(即代碼要在synchronized中) 。
3、它們都也可以被nosuchmethod方法中斷 。
具體來(lái)說(shuō):
(1000)意思是在未來(lái)的1000毫秒內(nèi)本線程不聯(lián)合CPU競(jìng)爭(zhēng),1000毫秒過(guò)去之后,這時(shí)候也許你至于一個(gè)線程正準(zhǔn)備不使用CPU,那就這時(shí)候操作系統(tǒng)是絕對(duì)不會(huì)重新分配CPU的,等到那個(gè)線程掛起或都結(jié)束了,即使這時(shí)候正巧緩過(guò)氣來(lái)操作系統(tǒng)參與CPU分配,那就當(dāng)前線程也不肯定會(huì)那就是總優(yōu)先級(jí)最低的那個(gè),CPU還是肯定被其他線程搶先占領(lǐng)去 。另外值得一提(0)的作用,就是觸發(fā)操作系統(tǒng)立玄新的并且第二次CPU競(jìng)爭(zhēng),激烈的競(jìng)爭(zhēng)的結(jié)果可能是當(dāng)前線程依舊完成任務(wù)CPU控制權(quán),或許會(huì)那用別的線程完成CPU控制權(quán) 。
推薦閱讀
- 怎么在單反相機(jī)上設(shè)置才能拍出背景虛化的照片 ps里怎么把文字虛化做成掃描件
- 微信上的對(duì)話框怎么顯示在屏幕 微信來(lái)電怎么不顯示來(lái)電界面
- 會(huì)計(jì)從業(yè)資格證檔案在哪里查詢
- 為什么那么多人在用酷狗聽(tīng)歌
- 美團(tuán)怎么兌換紅包 美團(tuán)紅包券在哪里弄
- 淘寶下單之后還可以備注嗎 淘寶購(gòu)買(mǎi)備注在哪
- 小米平板關(guān)不了機(jī)什么原因 小米4平板在哪里打開(kāi)定時(shí)關(guān)機(jī)
- word文檔怎么一鍵調(diào)整多個(gè)標(biāo)題 word多級(jí)標(biāo)題編號(hào)格式到底怎樣調(diào)
- 二十歲的唯美句子有哪些
- 羊毛大衣水洗會(huì)怎樣
