FIFO 是什么
队列是「先进先出」(FIFO),意思是【0】。
为什么用线程安全的队列
多个线程一起放取,用标准库的线程安全队列而不是普通的列表,因为【0】。
阻塞版 put/get 做什么
队列的「阻塞版」put 和 get(本条的 Box)在满时和空时会【0】。
单生产单消费的顺序
(每道题开头都有同一段:上面的有界队列。) 贯穿全条的有界队列(Condition 同步:满了 put 等、空了 get 等,等的时候把锁交出去): box = Box(cap) 一个最多装 cap 个的队列 box.
补全:满了就不放
(每道题开头都有同一段:上面的有界队列。) 贯穿全条的有界队列(Condition 同步:满了 put 等、空了 get 等,等的时候把锁交出去): 先不管等待,只写「满没满」这一步。补全 try_put(items, cap, x):满了
补全:空了别硬取
(每道题开头都有同一段:上面的有界队列。) 贯穿全条的有界队列(Condition 同步:满了 put 等、空了 get 等,等的时候把锁交出去): 先不管等待,只写「空没空」这一步。补全 try_get(items):空了交回 None(
补全:放五个取五个
(每道题开头都有同一段:上面的有界队列。) 贯穿全条的有界队列(Condition 同步:满了 put 等、空了 get 等,等的时候把锁交出去): box = Box(cap) 一个最多装 cap 个的队列 box.
生产者线程干什么
生产者线程的活是【0】。
消费者线程干什么
消费者线程的活是【0】。
共享队列要不要自己加锁
生产者和消费者共用一个队列,用标准库的 queue.Queue 时【0】。