如何理解线程安全

线程安全问题都是由全局变量及静态变量引起的。

JVM运行时数据区包括了程序计数器,本地方法栈,jvm栈,堆。在这四个区中,前三个都是线程间隔离的。
只有堆内存是线程间共享的。而全局变量放在堆内存中,各线程内jvm栈只保存了对象引用,所以各线程更改的还是一个
内存地址的数据。

阅读更多