线程的安全性包括可见性和原子性两个方面;java的同步机制都是围绕这两个方面展开的
volatile和synchronized的区别
volatile保持了变量在多线程中的可见性 但是不保证原子性;synchronized保持了原子性 但是没办法保持可见性(不一定 在一定程度上保证了变量的可见性)
volatile是轻量级的同步 效率比synchronize效率要好
volatile解决的是变量在多线程之间的可见性 ,所以synchronized解决的是多个线程之间访问资源的同步性
线程的安全性包括可见性和原子性两个方面;java的同步机制都是围绕这两个方面展开的
volatile和synchronized的区别
volatile保持了变量在多线程中的可见性 但是不保证原子性;synchronized保持了原子性 但是没办法保持可见性(不一定 在一定程度上保证了变量的可见性)
volatile是轻量级的同步 效率比synchronize效率要好
volatile解决的是变量在多线程之间的可见性 ,所以synchronized解决的是多个线程之间访问资源的同步性