补全:找出饿死的
补全 starved:交回从没被调度到的线程(排序)。 活锁/饥饿模型:polite(rounds)——两线程对称礼让(都发现对方也要就退回重来),谁也拿不全,交回完成数(对称下 0);starved(schedule, threads)—
补全:三选一分类
补全 classify:都不动→死锁、在动没人完成→活锁、有人完成但有线程总轮不到→饥饿。 活锁/饥饿模型:polite(rounds)——两线程对称礼让(都发现对方也要就退回重来),谁也拿不全,交回完成数(对称下 0);starved(s
锁顺序怎么避免死锁
两行都先拿左边、再拿右边 同一个顺序,连不成环、都能过 用锁顺序避免死锁,做法是【0】。 锁顺序模型:给锁定个全局序 order(如 [L1,L2,L3],越靠前越先拿)。in_order(seq, order) 判一条获取序是否合全局序;
为什么统一顺序就不死锁
两行都先拿左边、再拿右边 同一个顺序,连不成环、都能过 大家都按同一顺序加锁,就不会死锁,因为【0】。 锁顺序模型:给锁定个全局序 order(如 [L1,L2,L3],越靠前越先拿)。in_order(seq, order) 判一条获取序
全局序怎么定
给锁定全局序,最常见的办法是【0】。 锁顺序模型:给锁定个全局序 order(如 [L1,L2,L3],越靠前越先拿)。in_order(seq, order) 判一条获取序是否合全局序;risk(seqs, order) 判多条序里有没有
这两条序有风险吗
全局序是 [L1,L2,L3],两线程分别按 [L1,L2] 和 [L2,L1] 加锁,risk 交回什么? 锁顺序模型:给锁定个全局序 order(如 [L1,L2,L3],越靠前越先拿)。in_order(seq, order) 判一条
补全:这条序合规吗
补全 in_order:判一条获取序是否合全局序(下标递增)。 锁顺序模型:给锁定个全局序 order(如 [L1,L2,L3],越靠前越先拿)。in_order(seq, order) 判一条获取序是否合全局序;risk(seqs, or
补全:多条序有风险吗
补全 risk:多条获取序里只要有一条不合全局序,就有循环等待风险。 锁顺序模型:给锁定个全局序 order(如 [L1,L2,L3],越靠前越先拿)。in_order(seq, order) 判一条获取序是否合全局序;risk(seqs,
补全:把序排对
补全 fixed:把一条获取序重排成全局序。 锁顺序模型:给锁定个全局序 order(如 [L1,L2,L3],越靠前越先拿)。in_order(seq, order) 判一条获取序是否合全局序;risk(seqs, order) 判多条序
补全:该先拿哪把
补全下面的 first_lock:按全局序,这条序里应该最先拿哪把锁。 锁顺序模型:给锁定个全局序 order(如 [L1,L2,L3],越靠前越先拿)。in_order(seq, order) 判一条获取序是否合全局序;risk(seqs