⚠️ 自己写:只设标志不放毒丸
(每道题开头都有同一段:上面的有界队列。) 毒丸是一次 put,一定能把卡在 get 上的消费者叫醒、让它退出;「设个标志」不行——队列空时消费者阻塞在 get 上,根本执行不到「检查标志」。补全 e
补全:完整的优雅退出
(每道题开头都有同一段:上面的有界队列。) 贯穿全条的有界队列(Condition 同步:满了 put 等、空了 get 等,等的时候把锁交出去): box = Box(cap)
补全:消费者见毒丸退出
(每道题开头都有同一段:上面的有界队列。) 贯穿全条的有界队列(Condition 同步:满了 put 等、空了 get 等,等的时候把锁交出去): box = Box(cap)
补全:生产者放毒丸
(每道题开头都有同一段:上面的有界队列。) 贯穿全条的有界队列(Condition 同步:满了 put 等、空了 get 等,等的时候把锁交出去): box = Box(cap)
毒丸放少了会怎样
(每道题开头都有同一段:上面的有界队列。) 贯穿全条的有界队列(Condition 同步:满了 put 等、空了 get 等,等的时候把锁交出去): box = Box(cap)
毒丸让大家都退出
(每道题开头都有同一段:上面的有界队列。) 贯穿全条的有界队列(Condition 同步:满了 put 等、空了 get 等,等的时候把锁交出去): box = Box(cap)
几个消费者要几颗毒丸
有 3 个消费者,要让它们都停下来,得放【0】。
消费者的 while 怎么停
消费者是 while True: 取一个、处理,让它优雅停下来的常见办法是【0】。
⚠️ 自己写:用普通 list 会不会漏
(每道题开头都有同一段:上面的有界队列。) 线程安全队列把「查非空 + 取」锁成一步;普通 list 不锁,多个消费者「同时看到非空、一起 pop」时只有一个能拿到、其余落空。补全 outcome(h
补全:多对多验总数
(每道题开头都有同一段:上面的有界队列。) 贯穿全条的有界队列(Condition 同步:满了 put 等、空了 get 等,等的时候把锁交出去): box = Box(cap)