最常见的就是数字的读和写,如果不是原子操作,那么就可能存在以下情况:
A线程读取值为1,通过判断正确,将值+1,还没来得急写,这时B线程也进入该段逻辑,通过判断正确,将值+10,这时A写入,得到的值是2,而B线程得到的值是11,这种可能因为执行顺序得到不同结果的情况,就是非线程安全的。
首页 >
最常见的就是数字的读和写,如果不是原子操作,那么就可能存在以下情况:
A线程读取值为1,通过判断正确,将值+1,还没来得急写,这时B线程也进入该段逻辑,通过判断正确,将值+10,这时A写入,得到的值是2,而B线程得到的值是11,这种可能因为执行顺序得到不同结果的情况,就是非线程安全的。