有一段业务代码,不知道会不会死锁

查看 20|回复 0
作者:dengji85   
线上环境偶尔一个待办无法处理,服务器 cpu100%,原因时数据库死锁了,因为逻辑是这样
有 2 条 id 分别为 1 ,2 的待办数据
处理 1 后,自动启一个线程更新 2
处理 2 后,自动启一个线程更新 1
因为处理比较耗时,用户可能反复重试,看起来会有死锁,但是自动更新是异步,不在一个事务里,这种情况会产生死锁吗?
service{
    update(){
    //事务
    //耗时较长
    }
}
WebControllerMethod(){
    update(id:1)
    ThreadPoolTaskExecutor.execute(() -> {
        update(id:2)
    }
}
您需要登录后才可以回帖 登录 | 立即注册

返回顶部