⚠️ 自己写:只设标志不放毒丸

⚠️ 自己写:只设标志不放毒丸

(每道题开头都有同一段:上面的有界队列。) 毒丸是一次 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 怎么停

消费者是 while True: 取一个、处理,让它优雅停下来的常见办法是【0】。

阅读更多 →
⚠️ 自己写:用普通 list 会不会漏

⚠️ 自己写:用普通 list 会不会漏

(每道题开头都有同一段:上面的有界队列。) 线程安全队列把「查非空 + 取」锁成一步;普通 list 不锁,多个消费者「同时看到非空、一起 pop」时只有一个能拿到、其余落空。补全 outcome(h

阅读更多 →
补全:多对多验总数

补全:多对多验总数

(每道题开头都有同一段:上面的有界队列。) 贯穿全条的有界队列(Condition 同步:满了 put 等、空了 get 等,等的时候把锁交出去): box = Box(cap)

阅读更多 →