什麼時候才使用volatile關鍵字?

2021-10-17 05:05:24 字數 465 閱讀 1686

相比起synchronized關鍵字,volatile關鍵字也是能夠解決共享變數的記憶體可見性問題,而且還是非阻塞的,效能也要比synchronized關鍵字要好,因為synchronized關鍵字是獨佔鎖,乙個執行緒獲取到鎖後,其他執行緒就只能阻塞了,這就會產生執行緒的上下文切換和重新排程的開銷,那為什麼volatile關鍵字沒法替代synchronized關鍵字,因為volatile關鍵字沒法保證操作的原子性。

那麼在什麼情況下,可以使用volatile關鍵字替換synchronized關鍵字來提高效能?

其實如果不需要保證對變數操作的原子性,就可以使用volatile關鍵字替換synchronized關鍵字,舉個例子,假設寫入變數值依賴變數的當前值,涉及到的操作就被分為了3步,獲取當前變數值,計算期望值,寫入期望值這3步操作,而volatile關鍵字並不能保證這3步操作的原子性,所以此時不能用volatile關鍵字,反之則可以。

什麼時候才應該使用HBase?

張貴賓guibin.beijing gmail.com 在使用hbase一定要明白hbase的適用場合,因為hbase並非適用於每種情況。如果有幾億或者幾十億條記錄要存入hbase,那麼hbase就是乙個正確的選擇 否則如果你僅有幾百萬條甚至更少的資料,那麼hbase當然不是正確的選擇,這種情況下應...

什麼時候才應該使用HBase?

在使用hbase一定要明白hbase的適用場合,因為hbase並非適用於每種情況。如果有幾億或者幾十億條記錄要存入hbase,那麼hbase就是乙個正確的選擇 否則如果你僅有幾百萬條甚至更少的資料,那麼hbase當然不是正確的選擇,這種情況下應當選擇傳統的關係型資料庫,因為如果這麼少的資料存入hba...

什麼時候才應該使用HBase?

在使用hbase一定要明白hbase的適用場合,因為hbase並非適用於每種情況。如 果有幾億或者幾十億條記錄要存入hbase,那麼hbase就是乙個正確的選擇 否則如果你僅有幾百萬條甚至更少的資料,那麼hbase當然不是正確的選 擇,這種情況下應當選擇傳統的關係型資料庫,因為如果這麼少的資料存入h...