上面两线程真卡住,必要前提是【0】。
贯穿本节的等待图模型(判题机不靠时序,这是死锁的确定模型):holds={锁: 持有它的线程}、wants={线程: 想要的锁}。想要的锁被别人占着就连一条等待边。waitfor 交回等待边 {等的人: 被等的人},find_cycle 交回环上的线程(没环 []),deadlocked 判有没有死锁,blocked 数几个在等;victim 从环里挑一个当牺牲者、after_abort 中止它后还有没有环、cycle_len 环有多长。
holds
wants
waitfor
find_cycle
deadlocked
blocked
victim
after_abort
cycle_len
全部评论