i++有没有线程安全问题?
有
为什么?
i++的操作不是原子性的,包含了三个步骤读取变量的当前值、对其进行加1操作,然后将结果写回变量。
如果两个线程进行i+1操作,最后生效只有一个。
如何解决它
使用原子锁AtomicInteger或者使用线程互斥。
i++有没有线程安全问题?
有
为什么?
i++的操作不是原子性的,包含了三个步骤读取变量的当前值、对其进行加1操作,然后将结果写回变量。
如果两个线程进行i+1操作,最后生效只有一个。
如何解决它
使用原子锁AtomicInteger或者使用线程互斥。