synchronized
修饰方法或者代码块 同一时刻只能有一个线程使用该方法或者代码块
volatile
volatile修饰的变量 使用时获取到的都是最新值
原理:线程会把主内存的变量复制到自己的内存修改,修改之后重新赋值,使用的也是自己线程里面保存的值,使用volatile修饰变量,线程会去主内存取值,所以一直取的都是最新的值
synchronized
修饰方法或者代码块 同一时刻只能有一个线程使用该方法或者代码块
volatile
volatile修饰的变量 使用时获取到的都是最新值
原理:线程会把主内存的变量复制到自己的内存修改,修改之后重新赋值,使用的也是自己线程里面保存的值,使用volatile修饰变量,线程会去主内存取值,所以一直取的都是最新的值