为什么synchronized连续锁两个对象,之间没有sleep就不会发生死锁

来源:14-11 换序避免

_涛子_BOOK

2020-03-14

为什么synchronized连续锁两个对象,之间没有sleep就不会发生死锁,,,多个线程不还是线程1先获取from,再获取to,线程2,先获取to再获取from么

写回答

2回答

紫钰

2020-03-26

我理解sleep并不是必须的,因为两人转账的代码不加sleep的话,发生死锁的概率极低,sleep只是放大了这个概率罢了(说是放大,其实是变成了100%出现)

0
0

无心铁憨憨

2020-03-14

同学你好,你没有贴代码,我也不知道具体是怎么的,不过按照你描述的所说,不加sleep的话,应该也是有几率发生死锁的,你可以多尝试几次,第一个线程在获取的from之后进行休眠,是为了保证线程2能获取到to,这样就会发生死锁的

0
0

线程八大核心+Java并发原理及企业级并发解决方案

完整的并发知识网络+丰富的工作内容分享+50余道并发高频面试题

2512 学习 · 939 问题

查看课程