关于Java中线程安全问题-同时操作同一个对象#00001

74 阅读1分钟

引入

今天我在写代码时发现一个不算复杂的问题,如果多个线程同时操作同一个对象,会不会出现一些问题?

问题

我用一个抢票做案例

}}~PFS_5JA9X]C6X%S0CF.png 如上图所示,这个时很简单的开启线程方式,但我利用了2个线程同时操作一个对象,这时什么情况下会出现问题?

C043(E@VXOA$IO(KZF51K.png

![O_(N}U3A6SYA}01M6JCCAP.png

B(HP6{HLZAQMQD`M4YVJN.png

效果

在A等待的情况下他是会出现问题的,我觉得可能时因为A还没抢B就已经抢完了,这种情况需要把方法设置成 synchronized 就可以了

image.png

image.png