老师,您好!springmvc controller->service->dao 在两个用户修改同一条记录的极端场景下是不是也会有并发问题?

来源:1-4 并发与高并发基本概念(选看)

慕粉1908521903

2018-11-09

老师,您好!springmvc controller->service->dao 在两个用户修改同一条记录的极端场景下是不是也会有并发问题?即使没有使用static变量,是不是也会出现A修改成功但却是看到了B修改的结果?
谢谢!

写回答

1回答

Jimin

2018-11-09

你好,这个要看实际操作时是否加锁,dao对于db的更新操作,也要看是否加了乐观锁。本质上这种并发问题与controller-service-dao这个层级是没什么关系的,只看你是如何进行更新的。

0
2
Jimin
你好,通常这种都很少加锁的(我们在个别并发特别高的项目里才会加乐观锁),因为大部分这种更新都是一个表的更新,更新完一般会展示详情,这时如果真有并发还可以再改一下,绝大部分的管理功能都可以这样设计。通常有时需要加锁,是针对某些计算及状态特别敏感的场景,比如订单状态更新、实时记账等等,这些场景如果某个操作被覆盖影响很大,比如订单定时取消了,相关的释放了很多资源,而另一个线程又来更新说订单成功了,这种就必须加锁了,这时更新状态时都特别建议加上对更新之前状态的校验。
2018-11-11
共2条回复

Java高并发编程,构建并发知识体系,提升面试成功率

构建完整并发与高并发知识体系,倍增高薪面试成功率!

3923 学习 · 832 问题

查看课程