关于synchronized和transaction
来源:2-6 Mysql悲观锁特性如何解决并发问题?

10000h丶
2023-10-25
hello,老师,请问一下,在这种使用了myslq悲观锁(select for update)的情况下,感觉是不需要synchronized了吧,即使n个线程都进入了这个方法,但是在mysql层面也被阻塞住了
写回答
1回答
-
Er十七
2023-10-25
同学,你好。你理解的没有问题,这个方法内部通过mysql悲观锁的方式在mysql查询库存的时候已经加锁了,所以在方法的第一行,不同线程间的一个并发已经被mysql锁的阻塞了。只有每个线程执行完事务提交锁之后,其他线程才可以重新拿到库存,做库存扣减的逻辑。是不需要synchronized关键字的。
022023-10-27
相似问题