进程队列queue
  • 特点

    • 能够实现进程之间的通信
    • 数据安全
    • 先进先出
  • 实现原理

    • 基于管道+锁

    • 管道基于文件级别的socket+pickle实现的

    • from multiprocessing import Process
      from multiprocessing import Queue
      
      def f_put(q):
          for i in range(4):
              q.put(f'hello{i}')
      
      def f_get(q):
          for i in range(5):
              if q==None:break
              print(q.get())
      
      if __name__ == '__main__':
          queue=Queue()
          f1=Process(target=f_put,args=(queue,))
          f1.start()
          f2=Process(target=f_get,args=(queue,))
          f2.start()
          f1.join()
          queue.put(None)