Bootstrap

Python学习的第三十三天总结:队列与事件

队列

  • 创建一个对队对象

    队列对象 = multiprocessing.Queue(容量)
    
    queue
    英 [kjuː]   美 [kjuː]  
    n.
    (人、汽车等的)队,行列;(储存的数据)队列
    v.
    (人、车等)排队等候;(使)排队;列队等待
    
  • 传送数据

    队列对象.put(数据)
    

    阻塞的情况:当队列已经被塞满数据时,就会阻塞。无法put放入数据。当队列中有空位置时,就会解阻塞。

  • 接收数据

    数据 = 队列对象.get()
    

    阻塞的情况:当队列空了,出不了数据了,就会阻塞。直到队列中有新数据时,会解阻塞。

  • 接收数据,且不等待

    数据 = 队列对象.get_nowait()
    

    如果队列中有数据,可以获得,如果队列中无数据,那就报错。

生产者消费者模型

做包子 20 10

包子,比做数据

吃包子 3 5

事件

  • 创建事件对象

    事件对象 = multiprocessing.Event()
    

    理解为,制定了一个行动计划

  • 等待行动指令

    事件对象.wait()
    
  • 开始行动

    事件对象.set()
    
  • 取消行动,继续回归到等待状态(潜伏状态)

    事件对象.clear()
    
  • 判断当前的事件状态

    事件对象.is_set()
    
;