第10章 避免活跃性危险
文章目录
10.1 死锁
10.1.1 锁顺序死锁
如果所有线程以固定的顺序来获得锁,那么在程序中就不会出现锁顺序死锁问题
10.1.2 动态的锁顺序死锁
10.1.3 在协作对象之间发生的死锁
如果在持有锁时调用某个外部方法,那么将出现活跃性问题。在这个外部方法中可能会获取其他锁,或者阻塞时间过长,导致其他线程无法及时获得当前被持有的锁
10.1.4 开放调用
在调用某个方法时不需要持有锁
如果所有线程以固定的顺序来获得锁,那么在程序中就不会出现锁顺序死锁问题
如果在持有锁时调用某个外部方法,那么将出现活跃性问题。在这个外部方法中可能会获取其他锁,或者阻塞时间过长,导致其他线程无法及时获得当前被持有的锁
在调用某个方法时不需要持有锁