Java内存模型
在并发编程中,内存的可见性基本上决定了,你的代码是否存在线程竞争,是否存在静态条件。
Java 内存分为两大类:
共享变量:实例域(全局变量),静态域(全局静态变量),数组元素;这些元素处于堆内存中,属于线程间共享部分,存在线程安全问题。
局部变量:方法内部的局部变量,方法参数,异常处理器参数。不在线程间共享,所以不存在线程静态条件,所以时线程安全的。
共享变量 :由于内存可见性,如果多线程之间需要操作同一共享变量,那么就存在线程竞态环境,需要对共享变量进行线程安全控制。
局部变量:本身是线程安全的。