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