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