摘要:
之前有一个同事问到我,为什么多个线程同时去做删除同一行数据的操作,老是报死锁,在线上已经出现好多次了,我问了他几个问题:1. 是不是在一个事务中做了好几件事情? 答:不是,只做一个删除操作,自动提交2. 有多少个线程在做删除? 答:差不多10个3. 是什么隔离级别? 答:可重复读当时觉得不可思议,按说自动提交的话行锁,如果已经有事务加锁了,则会等待,等提交之后再去做,发现已经删除了,就会返回,删除0条,为什么会死锁?但事情已经出了,必须研究一下,不然终究是心头之苦啊。然后想到既然线上有这么简单的操作就可以死锁,那么应该写个简单的程序就可以重现,然后同事李润杰兄弟咔嚓咔嚓没多时就给我了,在... 阅读全文
浙公网安备 33010602011771号