大廠面試題集之volatile到底怎麼用?

2021-10-10 07:52:37 字數 288 閱讀 6771

開啟乙個執行緒死迴圈執行任務,一bool型別標識控制迴圈的退出,預設為true代表執行,一段時間後主執行緒將這個變數設定為了false。

所以不能退出。必須加volatile,因為volatile保證了可見性。改完後會強制讓工作記憶體失效,去主存拿。如果不加volatile的話那麼在while true裡面新增輸出語句也是ok的。因為println原始碼加鎖了,sync會讓當前執行緒的工作記憶體失效。

或使用atomicboolean/atomicreference等也行,後者相比volatile除了確保可見性還提供了cas方法保證原子性。

2019前端面試大廠面試題

後面題目是我從各大廠面試題總結的一些經驗 需要key的原因是 使用v for更新已經渲染的元素列表時,預設採用 就地復用 策略,列表中資料發生改變時,此時的key就開始工作,根據key值去判斷某個值是否被修改,如果修改了的話,則重新渲染這一項,否則復用之前的元素 根據這個原因,我們可以知道,key值...

Redis 大廠常見面試題

詳細看 redis的8大應用場景 某個時刻,多個系統例項都去更新某個 key。可以基於 zookeeper 實現分布式鎖。每個系統通過 zookeeper 獲取分布式鎖,確保同一時間,只能有乙個系統例項在操作某個 key,別人都不允許讀和寫。你要寫入快取的資料,都是從 mysql 裡查出來的,都得寫...

面試題集 redis

1.redis常用的五種資料型別 1.string 字串 string是簡單的 key value 鍵值對,value 不僅可以是 string,也可以是數字。它是redis最基本的資料型別,乙個redis中字串value最多可以是512m。2.hash 雜湊 redis hash 是乙個鍵值對集合...