多線程高并發(fā)面試題 多個(gè)線程可以讀一個(gè)變量,只有一個(gè)線程可以對(duì)這個(gè)變量進(jìn)行寫,到底要不要加鎖?
多個(gè)線程可以讀一個(gè)變量,只有一個(gè)線程可以對(duì)這個(gè)變量進(jìn)行寫,到底要不要加鎖?下面簡要解釋一下原因:鎖定是因?yàn)椴僮鞑皇窃拥摹W屛覀冇貌僮饕粊斫忉屗???聪旅鎯蓚€(gè)圖。我這個(gè)操作需要看上面的第二個(gè)圖,你能很清
多個(gè)線程可以讀一個(gè)變量,只有一個(gè)線程可以對(duì)這個(gè)變量進(jìn)行寫,到底要不要加鎖?
下面簡要解釋一下原因:
鎖定是因?yàn)椴僮鞑皇窃拥?。讓我們用操作一來解釋它??聪旅鎯蓚€(gè)圖。
我這個(gè)操作需要
看上面的第二個(gè)圖,你能很清楚地理解這個(gè)過程嗎?
鎖定是為了確保上述三個(gè)步驟是原子操作。
回到問題上來,只有一個(gè)線程要寫,沒有競(jìng)爭,所以不需要鎖定。
但是,如果你看第一張圖片,因?yàn)橹鲀?nèi)存和本地內(nèi)存的存在
在一個(gè)線程寫入后,其他線程無法立即看到它。這就是可見性問題。
添加volatile關(guān)鍵字后,它將在操作后強(qiáng)制工作內(nèi)存和主內(nèi)存同步,以確保其他線程可以立即看到它。
你經(jīng)歷過哪些有意思的面試題目?
你好,我很高興回答你的問題。
如果你是某個(gè)單位的公職人員,你的親戚朋友經(jīng)常來找你打聽單位的內(nèi)部事務(wù)。如果你有什么事需要你幫忙,你應(yīng)該怎么處理?][真題]愛狗協(xié)會(huì)人士反映,最近他們用200條狗堵了一輛車,網(wǎng)上批評(píng)劉胡蘭、邱少云、瑯琊山五杰等中國抗日英雄的言論很多。你覺得這個(gè)怎么樣?]【真題】近年來,釋放積德的行為層出不窮,但最近有人放生老鼠。你怎么認(rèn)為?
面試題還有很多其他意思,小編不會(huì)一一列出,如果你有興趣,可以去sd.offcn.com網(wǎng)站學(xué)習(xí)。
一個(gè)面試題:用SSH框架做的項(xiàng)目是如何管理多線程的?
SSH:通過操作觸發(fā)多線程任務(wù)。每個(gè)任務(wù)都調(diào)用一個(gè)方法,該方法繼承hibernatedaosupport的服務(wù)。現(xiàn)在每個(gè)線程都綁定了一個(gè)新的hibernate會(huì)話