两个线程试图以不同的顺序获得相同的锁,那么可能发发生死锁。比如转账问题,由from账户 向to账户转账,假设每次我们先同步from对象,再同步to账户,然后执行转账操作,貌似没什 么问题。如果这时候to账户同时向from账户转账,那么两个线程可能要永久等待了。
两个线程试图以不同的顺序获得相同的锁,那么可能发发生死锁。比如转账问题,由from账户 向to账户转账,假设每次我们先同步from对象,再同步to账户,然后执行转账操作,貌似没什 么问题。如果这时候to账户同时向from账户转账,那么两个线程可能要永久等待了。