Java中自增自减在JVM中的体现
Java中自增自减操作底层并不是原子操作(以静态变量为例),多线程情况下容易出现共享安全问题
i++
1 | getstatic i // 获取静态变量i的值 |
i–
1 | getstatic i // 获取静态变量i的值 |
共享操作代码
1 | static int counter = 0; |
单线程情况(运行正常)

多线程情况(运行异常)

Java中自增自减操作底层并不是原子操作(以静态变量为例),多线程情况下容易出现共享安全问题
1 | getstatic i // 获取静态变量i的值 |
1 | getstatic i // 获取静态变量i的值 |
1 | static int counter = 0; |

