线程安全单例模式java Java线程安全问题指的是全局变量,还是静态变量?
浏览量:2293
时间:2021-03-15 12:36:07
作者:admin
Java线程安全问题指的是全局变量,还是静态变量?
哈哈,当你看到这个问题,你应该有点白。全局变量和静态变量都有线程安全问题,因为它们在堆内存中,由所有线程共享。如果您想了解线程,请先转到JAVA内存模型。静态变量:线程不安全。静态变量,即类变量,位于方法区域中。它们被所有对象共享并共享一部分内存。修改静态变量后,其他对象对修改是可见的,因此线程是不安全的。
2. 实例变量:单例模式(只存在一个对象实例)是线程不安全和非单例线程安全的。实例变量是对象实例的私有变量,并在虚拟机堆中分配。如果这个对象在系统中只有一个实例,那么在多线程环境中,“就像”这个静态变量,被一个线程修改后,其他线程都能看到修改,所以线程是不安全的。如果每个线程在不同的对象中执行,那么对象和对象之间的实例变量是不安全的,修改不会相互影响,因此线程安全。
3. 局部变量:线程安全。当每个线程执行时,它会将局部变量放在自己的堆栈帧的工作内存中,这在线程之间是不共享的,因此不存在线程安全问题。
线程安全单例模式java java全局变量存储在哪个区 mysql怎么求平均分
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。