这周面了阿里,多线程都要问这么难了???
唉,真tm上火,面試官又給我上了一課。前兩天去某廠面試,問(wèn)了我一道什么哲學(xué)家就餐問(wèn)題。
真的,太難搞了,而且還挺經(jīng)典的!反正我是不會(huì),我給你們分享一下,如果你近期也打算跳槽,或者想漲漲知識(shí)的,我建議你好好看看這個(gè)!
假設(shè)有五位哲學(xué)家圍坐在一張圓形餐桌旁,做以下兩件事情之一:吃飯,或者思考。
吃東西的時(shí)候,他們就停止思考,思考的時(shí)候也停止吃東西。餐桌中間有一大碗意大利面,每?jī)蓚€(gè)哲學(xué)家之間有一只餐叉。
不過(guò)哲學(xué)家從來(lái)不交談,這就很危險(xiǎn),可能產(chǎn)生死鎖,每個(gè)哲學(xué)家都拿著左手的餐叉,永遠(yuǎn)都在等右邊的餐叉(或者相反)。
即使沒(méi)有死鎖,也有可能發(fā)生資源耗盡。例如,假設(shè)規(guī)定當(dāng)哲學(xué)家等待另一只餐叉超過(guò)五分鐘后就放下自己手里的那一只餐叉,并且再等五分鐘后進(jìn)行下一次嘗試。
這個(gè)策略消除了死鎖,但仍然有可能發(fā)生活鎖。
如果五位哲學(xué)家在完全相同的時(shí)刻進(jìn)入餐廳,并同時(shí)拿起左邊的餐叉,那么這些哲學(xué)家就會(huì)等待五分鐘,同時(shí)放下手中的餐叉,再等五分鐘,又同時(shí)拿起這些餐叉。
在實(shí)際的計(jì)算機(jī)問(wèn)題中,缺乏餐叉可以類(lèi)比為缺乏共享資源。
一種常用的計(jì)算機(jī)技術(shù)是資源加鎖,用來(lái)保證在某個(gè)時(shí)刻,資源只能被一個(gè)程序或一段代碼訪問(wèn)。
當(dāng)一個(gè)程序想要使用的資源已經(jīng)被另一個(gè)程序鎖定,它就等待資源解鎖。當(dāng)多個(gè)程序涉及到加鎖的資源時(shí),在某些情況下就有可能發(fā)生死鎖。
例如,某個(gè)程序需要訪問(wèn)兩個(gè)文件,當(dāng)兩個(gè)這樣的程序各鎖了一個(gè)文件,那它們都在等待對(duì)方解鎖另一個(gè)文件,而這永遠(yuǎn)不會(huì)發(fā)生。
具體落地到代碼,你知道如何實(shí)現(xiàn)嗎?學(xué)會(huì)這道題,之后面試官再問(wèn)你的時(shí)候就再也不怕了,純純的加分項(xiàng)!
推薦你來(lái)聽(tīng)一下馬老師這次的訓(xùn)練營(yíng),老牛X了!除了這道經(jīng)典的哲學(xué)家就餐問(wèn)題,還有剩下的5道線程題,一個(gè)比一個(gè)狠。。。
報(bào)名方式,我放下面了!具體的你們可以看看大綱。而且馬老師還在直播間給大家準(zhǔn)備了超多的福利!
原價(jià)?¥99,限時(shí)?¥0.02?立刻學(xué)習(xí)!
掃碼回復(fù)關(guān)鍵詞【013】
才能獲取上課權(quán)限
【一定要回復(fù)關(guān)鍵詞】
01
聽(tīng)完可以得到什么?
在你認(rèn)真聽(tīng)完本次的直播課后,我相信你一定會(huì)有以下幾個(gè)方面的提升!
系統(tǒng)梳理線程的執(zhí)行流程及各階段狀態(tài);
從全局思考如何解決業(yè)務(wù)問(wèn)題,而不是局限于某個(gè)方面;
提高代碼質(zhì)量和瓶頸定位及調(diào)優(yōu)能力;
助力面試中表現(xiàn)出色,取得更高水平的薪資;
對(duì)照知識(shí)體系,查漏補(bǔ)缺。
系統(tǒng)掌握一線互聯(lián)網(wǎng)大廠的多線程知識(shí)體系和優(yōu)化方案
02
課堂福利
送:最新總結(jié):100道面試題以及解題秘籍
還有超細(xì)致的?課前預(yù)習(xí)資料?哦~
如果你是一名:
??Java開(kāi)發(fā)工程師
??Java業(yè)務(wù)架構(gòu)師
??Java系統(tǒng)架構(gòu)師
??Java愛(ài)好者
??想要跳槽漲薪的
??技術(shù)負(fù)責(zé)人/技術(shù)經(jīng)理/技術(shù)總監(jiān)
??項(xiàng)目經(jīng)理/項(xiàng)目總監(jiān)
??想要轉(zhuǎn)型架構(gòu)師的
......
那么這次訓(xùn)練營(yíng),就是特地為你準(zhǔn)備的!?
2?天時(shí)間,300?分鐘
6道經(jīng)典線程面試題
直戳你【升職加薪難】的真正原因
幫你在金九銀十前夕,打一場(chǎng)翻身仗
如果你對(duì)目前的薪水不滿意
這次訓(xùn)練營(yíng)你一定要來(lái)
掃碼回復(fù)關(guān)鍵詞【013】
才能獲取上課權(quán)限
【一定要回復(fù)關(guān)鍵詞】
本公眾號(hào)僅限前60名特惠購(gòu)買(mǎi)
請(qǐng)您耐心等待課程顧問(wèn)通過(guò)
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專(zhuān)家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的这周面了阿里,多线程都要问这么难了???的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Redis 16 大应用场景,竟然这么多
- 下一篇: 知乎热问:国家何时整治程序员的高薪现象?