关于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关键字的。

0
2
Er十七
回复
10000h丶
😃😃😃
2023-10-27
共2条回复

Java主流分布式解决方案多场景设计与实战

本课程是一门关于分布式系统下常见的解决方案的课程

190 学习 · 52 问题

查看课程