try-lock 怎么帮忙

try-lock(拿不到就不死等)避免死锁,靠的是【0】。 trylock 模型:try_round(want, held_by, me)——想要的锁被别人占着就「放弃重试」(连自己的一起松手),否则「拿到」;acquire_all(wan

开始练习 →

try-lock 打破哪条件

try-lock + 失败就释放,打破的是四条件里的【0】。 trylock 模型:try_round(want, held_by, me)——想要的锁被别人占着就「放弃重试」(连自己的一起松手),否则「拿到」;acquire_all(wa

开始练习 →

超时的作用

给加锁加一个超时,作用是【0】。 trylock 模型:try_round(want, held_by, me)——想要的锁被别人占着就「放弃重试」(连自己的一起松手),否则「拿到」;acquire_all(want, held_by, m

开始练习 →

被占着能拿到吗

按 trylock 模型,A 想要 L2、L2 正被 B 占着,try_round 交回什么? trylock 模型:try_round(want, held_by, me)——想要的锁被别人占着就「放弃重试」(连自己的一起松手),否则「拿

开始练习 →

一次拿全成了吗

按 trylock 模型,A 想一次拿全 [L1,L2],L2 被 B 占着,acquire_all 交回什么? trylock 模型:try_round(want, held_by, me)——想要的锁被别人占着就「放弃重试」(连自己的一

开始练习 →

补全:拿一把试试

补全 try_round:想要的锁被别人占着就「放弃重试」,否则「拿到」。 trylock 模型:try_round(want, held_by, me)——想要的锁被别人占着就「放弃重试」(连自己的一起松手),否则「拿到」;acquire

开始练习 →

补全:一次拿全

补全 acquire_all:一次要拿全,有一把被占就全放弃回「重试」,都空回「成功」。 trylock 模型:try_round(want, held_by, me)——想要的锁被别人占着就「放弃重试」(连自己的一起松手),否则「拿到」;

开始练习 →

补全:数几轮放弃

补全下面的 gives_up:一串 (要的锁, 占用表) 里,有几轮会放弃重试。 trylock 模型:try_round(want, held_by, me)——想要的锁被别人占着就「放弃重试」(连自己的一起松手),否则「拿到」;acqu

开始练习 →

怎么检测死锁

系统检测死锁的通用办法是【0】。 贯穿本节的等待图模型(判题机不靠时序,这是死锁的确定模型):holds={锁: 持有它的线程}、wants={线程: 想要的锁}。想要的锁被别人占着就连一条等待边。waitfor 交回等待边 {等的人: 被

开始练习 →

检测到死锁怎么恢复

检测到死锁后,常见的恢复办法是【0】。 贯穿本节的等待图模型(判题机不靠时序,这是死锁的确定模型):holds={锁: 持有它的线程}、wants={线程: 想要的锁}。想要的锁被别人占着就连一条等待边。waitfor 交回等待边 {等的人

开始练习 →