疫情环境下的网络学习笔记 python 4.23 作业

4.23作业

  • 手动书写生产者消费者代码
      from multiprocessing import Process, Queue
      import time, random
      
      
      # 1. 生产者制造数据
      def producer(name, food, q):
          for i in range(6):
              data = f'{name},{food},{i}'
              time.sleep(random.randint(1, 3))
              print(data)
              q.put(data)
      
      
      # 2. 消费者接收数据
      def consumer(name, q):
          while True:
              food = q.get()
              if not food:
                  break
              time.sleep(random.randint(1, 2))
              print(f'{name}吃了{food}')
      
      
      if __name__ == '__main__':
          q = Queue()
          # 生产者
          p1 = Process(target=producer, args=('aaa', '包子', q))
          p2 = Process(target=producer, args=('bbb', '煲汤', q))
          # 消费者
          c1 = Process(target=consumer, args=('deimos', q))
      
          p1.start()
          p2.start()
          c1.start()
      
          # 等待生产者生产完所有的数据,往队列添加指定的符号
          p1.join()
          p2.join()
          q.put(None)
          q.put(None)  # 两个None,一个消费真拿一个,拿到就break了
          # 有几个消费者就放几个None    
    
posted @ 2020-04-23 17:48  黑猫警长紧张  阅读(126)  评论(0)    收藏  举报