色欲av一区久久精品_久久综合色综合色88_无码在线观看不卡_色黄视频网站_亚洲国产精品久久久久秋霞66

線程兩次start()會(huì)發(fā)生什么?

時(shí)間:2023-05-16

線程是并發(fā)編程的根底元素,是系統(tǒng)調(diào)度的最小單元,現(xiàn)代的jvm直接對(duì)應(yīng)了內(nèi)核線程。為了降低并發(fā)編程的門(mén)檻,go語(yǔ)言引入了協(xié)程。
你好,我是李福春,我在準(zhǔn)備面試,今天的標(biāo)題是?
一個(gè)線程兩次調(diào)用start()辦法會(huì)發(fā)作什么?
答:線程兩次調(diào)用start()辦法會(huì)拋出IllegalThreadStateException,這是一種運(yùn)行時(shí)反常。
接下來(lái)針對(duì)面試官或許深挖的內(nèi)容做一些擴(kuò)展。
線程的存儲(chǔ)結(jié)構(gòu)
重點(diǎn)說(shuō)一下ThreadLocal,這個(gè)是線程私有空間,供給了一種保存線程私有信息的機(jī)制。
整個(gè)線程的生命周期中有效。
能夠在線程關(guān)聯(lián)的各個(gè)模塊之間傳遞信息,比方常見(jiàn)的三層模型,controller,service,dao之間能夠傳遞線程私有的一些透?jìng)餍畔ⅲ确绞聞?wù)id,跟蹤id等。
ThreadLocal的源碼比較簡(jiǎn)單,內(nèi)部使用了一個(gè)基于弱引用的ThreadLocalMap,key是線程,value是正常值。
需求留意的是,在作業(yè)線程中必須顯現(xiàn)的清理,否則簡(jiǎn)單引發(fā)oom問(wèn)題。
線程的生命周期
線程的狀況直接查看源碼,java.lang.Thread.State;
圖中很清楚的說(shuō)明晰狀況變遷的驅(qū)動(dòng)辦法。java
線程的其它辦法
創(chuàng)立線程的長(zhǎng)處:
1,不受單繼承的限制,更靈活。
2,重用代碼完成方便,更簡(jiǎn)單復(fù)用。
3,跟Executor框架能夠更好的集成。
看護(hù)線程
應(yīng)用需求一個(gè)長(zhǎng)期主流的服務(wù),可是不期望影響進(jìn)程的退出。
必須在線程發(fā)動(dòng)之前設(shè)置,即start辦法調(diào)用之前,設(shè)置辦法thread.setDaemon(true);
線程反常喚醒
使用while句子替換if句子,避免線程被反常喚醒
其它辦法
等候辦法:join(等候執(zhí)行完畢),yield(告知調(diào)度器,主動(dòng)讓出cpu)
wait,notify,notifyall,供給了進(jìn)程的同步協(xié)作東西,可是有了并發(fā)包之后,不再需求。
小結(jié)
本篇答復(fù)了一個(gè)常規(guī)面試問(wèn)題,線程兩次start會(huì)發(fā)作什么?然后從線程的存儲(chǔ),線程的狀況充沛認(rèn)識(shí)了線程這個(gè)系統(tǒng)基本調(diào)度單元。

文章標(biāo)簽:

Copyright ? 2016 廣州思洋文化傳播有限公司,保留所有權(quán)利。 粵ICP備09033321號(hào)

與項(xiàng)目經(jīng)理交流
掃描二維碼
與項(xiàng)目經(jīng)理交流
掃描二維碼
與項(xiàng)目經(jīng)理交流
ciya68