问题描述
现在程序有A和B两个表,要求两个表不能同时存在。例如新增A表程序先判断B表是否存在数据,如果B表无数据时新增A表。但是这样存在并发问题,当A表通过判断后执行新增前B表同时也执行了新增,最终就会导致A表和B表同时存在数据。
尝试使用同步锁解除此问题,但AB两个表操作分别放在不同的Class类中。
求一个有效的解决方案。多谢!!!
现在程序有A和B两个表,要求两个表不能同时存在。例如新增A表程序先判断B表是否存在数据,如果B表无数据时新增A表。但是这样存在并发问题,当A表通过判断后执行新增前B表同时也执行了新增,最终就会导致A表和B表同时存在数据。
尝试使用同步锁解除此问题,但AB两个表操作分别放在不同的Class类中。
求一个有效的解决方案。多谢!!!
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
3 回答1.7k 阅读✓ 已解决
解决并发问题一般这几种思路:
CAS
。在两个不同的
Class
文件是啥意思?如果是一个进程那就用synchronized
或者是Lock
搞定。不同的进程就得用分布式锁了。
第二种方案可以将操作请求发到
MQ
中,转换为串行执行。这里
CAS
不太适合。