synchronized和volatile區別

volatile本質是告訴JVM當前變量在寄存器中的值是不肯定的,須要從主存中讀取,synchronized則是鎖定當前變量,只有當前線程能夠訪問該變量,其餘線程被阻塞住。優化 volatile僅能用在變量級別,而synchronized能夠使用在變量、方法、類級別。.net volatile僅能實現變量的修改可見性,不能保證原子性;而synchronized則能夠保證變量的修改可見性和原子性。線
相關文章
相關標籤/搜索