**1.**线程是抢占式执行
**2.**自增操作不是原子的
**3.**多个线程尝试修改一个变量
3.1 如果是一个线程修改一个变量 线程安全
3.2如果是多个线程尝试读取同一变量 线程安全
3.3如果是多个线程修改不同变量 线程安全
**4.**内存可见性导致线程安全问题
**5.**指令重排序(Java的编译器在编译代码时,会针对指令进行优化,调整指令的先后顺序,提高程序的运行效率)
线程不安全的原因
最新推荐文章于 2023-03-20 16:59:19 发布
**1.**线程是抢占式执行
**2.**自增操作不是原子的
**3.**多个线程尝试修改一个变量
3.1 如果是一个线程修改一个变量 线程安全
3.2如果是多个线程尝试读取同一变量 线程安全
3.3如果是多个线程修改不同变量 线程安全
**4.**内存可见性导致线程安全问题
**5.**指令重排序(Java的编译器在编译代码时,会针对指令进行优化,调整指令的先后顺序,提高程序的运行效率)