@Transactionalpublic void selectAndUpdate() { status = select ... for update; if(status!="初始值") { return; } //逻辑开始 程序逻辑 ... 举例:用户支付 1.生成用户签名 2.发起用户支付到第三方 //逻辑结束 update status语句...}如果利用这种方式来控制并发会有什么问题?另外我还想问大家的是:多个线程的话,会不会导致当一个线程执行到程序逻辑那块的时候,资源被另一个线程抢去的可能?导致另一个线程进入这个方法,发现状态还是没有被改变,然后又进入程序逻辑这块,导致两个线程都执行了一遍吗?数据库的一个事务没有完成的话,会让另外一个线程的事务进入吗?
添加回答
举报
0/150
提交
取消