几个消费者要几颗毒丸

有 3 个消费者,要让它们都停下来,得放【0】。

开始练习 →

毒丸让大家都退出

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

开始练习 →

毒丸放少了会怎样

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

开始练习 →

补全:生产者放毒丸

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

开始练习 →

补全:消费者见毒丸退出

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

开始练习 →

补全:完整的优雅退出

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

开始练习 →

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

(每道题开头都有同一段:上面的有界队列。) 毒丸是一次 put,一定能把卡在 get 上的消费者叫醒、让它退出;「设个标志」不行——队列空时消费者阻塞在 get 上,根本执行不到「检查标志」。补全 exit_result(kind, que

开始练习 →

真机上怎么验它对了

真机上确认一个生产者消费者程序「对了」,最靠谱的做法是【0】。

开始练习 →

从现象认队列的毛病

真机上四种现象各对应一种毛病。把现象和毛病配对,打印四个字母: signs = { "消费总数比生产少": "A", "程序永远不退出": "B"

开始练习 →

把它跑起来看结果

场景:~/pc/跑.py 是一个完整的生产者消费者程序(用 queue.Queue + 线程),说明里写了生产多少个。 任务:把它跑起来,看它打印「消费了 N 个」,运行 ~/check(它会自己再跑几次核对总数)。 可操作范围:只在分给你

开始练习 →