synchronized關鍵字和volatile關鍵字比較

1. volatile關鍵字是線程同步的輕量級實現,因此volatile性能確定要比synchronized關鍵字要好。可是volatile關鍵字只能用於變量而synchronized能夠修飾方法以及代碼塊。synchronized關鍵字在Java1.6以後進行了主要包括爲了減小得到鎖和釋放鎖帶來的性能消耗而引發的偏向鎖和輕量級鎖以及其餘各類優化以後執行效率由了顯著提高,實際開發中使用synchronized關鍵字的場景仍是更多一些。多線程

2.多線程訪問volatile關鍵字不會發生阻塞,而synchronized關鍵字可能會發生阻塞。性能

3.volatile能夠保證數據的可見性,但不能保證數據的原子性,synchronized都能保證。優化

4.volatile關鍵字主要用於解決變量在多個線程之間的可見性,而synchronized關鍵字解決的是多個線程之間訪問資源的同步性。線程

相關文章
相關標籤/搜索