1.多线程访问的共享资源存在线程安全问题,
无外乎访问两种共享资源。
1)多线程访问方法区数据。存在线程安全问题,通过加锁
2)多线程访问实例变量:被访问对象是单例时存在线程安全,被访问对象是多例时,是线程安全的。
来说说静态变量、实例变量、局部变量在多线程下的安全问题吧!
(一)验证静态变量的线程安全性:
(1)从程序执行的图中我们可以看出,执行结果中有错误数据,证明了静态变量是存在资源冲突问题的。
(2)程序运行结果图:
5、结论:静态变量也称为类变量,属于类对象所有,位于方法区,为所有对象共享,共享一份内存,一旦值被修改,则其他对象均对修改可见,故线程非安全。