python中利用隊列asyncio.Queue進行通訊詳解
本文主要給大家介紹了關於python用隊列asyncio.Queue通訊的相關內容,分享出來供大家參考學習,下面話不多說了,來一起看看詳細的介紹吧。
asyncio.Queue與其它隊列是一樣的,都是先進先出,它是為協程定義的
例子如下:
import asyncio
async def consumer(n, q):
async def producer(q, num_workers):
async def main(loop, num_consumers):
event_loop = asyncio.get_event_loop()
try:
finally:
輸出如下:
consumer 0: starting
consumer 0: waiting for item
consumer 1: starting
consumer 1: waiting for item
producer: starting
producer: added task 0 to the queue
producer: added task 1 to the queue
consumer 0: has item 0
consumer 1: has item 1
producer: added task 2 to the queue
producer: added task 3 to the queue
consumer 0: waiting for item
consumer 0: has item 2
producer: added task 4 to the queue
consumer 1: waiting for item
consumer 1: has item 3
producer: added task 5 to the queue
producer: adding stop signals to the queue
consumer 0: waiting for item
consumer 0: has item 4
consumer 1: waiting for item
consumer 1: has item 5
producer: waiting for queue to empty
consumer 0: waiting for item
consumer 0: has item None
consumer 0: ending
consumer 1: waiting for item
consumer 1: has item None
consumer 1: ending
producer: ending
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值.