用 python 写异步进程间异步通信
时间: 2023-07-18 09:07:03 浏览: 91
Python RabbitMQ实现简单的进程间通信示例
在 Python 中,可以使用 asyncio 模块来实现异步进程间异步通信。下面是一个示例代码:
```python
import asyncio
async def producer(queue):
while True:
await queue.put('data') # 生产者不断向队列中放入数据
await asyncio.sleep(1) # 每隔1秒放入一次
async def consumer(queue):
while True:
data = await queue.get() # 消费者从队列中获取数据
print(data) # 打印获取到的数据
async def main():
queue = asyncio.Queue() # 创建一个异步队列
producer_task = asyncio.create_task(producer(queue)) # 创建生产者任务
consumer_task = asyncio.create_task(consumer(queue)) # 创建消费者任务
await asyncio.gather(producer_task, consumer_task) # 等待两个任务完成
if __name__ == '__main__':
asyncio.run(main()) # 运行主函数
```
在这个示例中,我们使用了 asyncio.Queue 来实现异步队列,生产者不断向队列中放入数据,消费者不断从队列中获取数据并打印。使用 asyncio.create_task() 函数创建任务,并使用 asyncio.gather() 函数等待两个任务完成。最后使用 asyncio.run() 函数运行主函数。
注意:在 Python 3.7 之前的版本中,可以使用 asyncio.ensure_future() 函数创建任务。
阅读全文