虽说,static是针对实例共享volatile是针对线程共享没明白:static的数据存储在方法区volatile 的数据存储在local variable,但是都是从主内存中 实时同步。
问题一:static感觉也是线程同步共享的呢?问题二:那主内存是存在哪里呢?
static和volatile都是修饰在类的成员变量中的。static是类级别,存放在方法区。 非static的成员属性属于对象级别,存放在堆内存。 这就是所谓的主内存。
当多线程访问共享内存(堆内存)中的数据时,就可能存在可见性问题,所以需要加volatile修饰。
static和volatile都是修饰在类的成员变量中的。static是类级别,存放在方法区。 非static的成员属性属于对象级别,存放在堆内存。 这就是所谓的主内存。
当多线程访问共享内存(堆内存)中的数据时,就可能存在可见性问题,所以需要加volatile修饰。