补全:放五个取五个

👁️ 4 人浏览 💬 0 人评论 ❤️ 添加收藏

(每道题开头都有同一段:上面的有界队列。)

贯穿全条的有界队列(Condition 同步:满了 put 等、空了 get 等,等的时候把锁交出去):

box = Box(cap)            一个最多装 cap 个的队列
box.put(x)               满了就等到有空位,再放进去、叫醒等着取的
box.get()                空了就等到有东西,再取最前面的、叫醒等着放的
run_pc(cap, n)           一个生产者放 0..n-1,一个消费者取 n 个 → 消费到的顺序(FIFO,确定)
run_mpmc(cap, 生产者数, 消费者数, 每人几个) → (消费总数, 消费集合==生产集合)   多对多只问聚合量
run_poison(cap, n, 消费者数)  生产完放几颗毒丸(None),消费者见毒丸就退 → (消费到的真数据数, 是否都退出了)

补全 move(box, n):往 box 放 0..n-1,再取 n 个交回列表。容量 2、n=5,看取到的顺序。

提交你的答案
请登录后提交答案。
去登录
代码编辑器
Ctrl + Enter 运行
本次输入:
输出:

                        
👩‍🏫
AI
💬 题目评论

全部评论