asyncio.Queue在有1个协程向队列添加数据,1个协程从队列获取数据时会卡住。
创始人
2024-09-21 05:30:29
0

可以使用asyncio.Lock来确保只有一个协程在同时执行添加或者获取操作,防止被阻塞。下面是示例代码:

import asyncio

async def producer(q, lock):
    while True:
        async with lock:
            await q.put('data')
        await asyncio.sleep(1)

async def consumer(q, lock):
    while True:
        async with lock:
            data = await q.get()
        print(data)
        await asyncio.sleep(1)

async def main():
    q = asyncio.Queue()
    lock = asyncio.Lock()
    producer_task = asyncio.create_task(producer(q, lock))
    consumer_task = asyncio.create_task(consumer(q, lock))
    await asyncio.gather(producer_task, consumer_task)

asyncio.run(main())

在这段示例代码中,我们创建了一个异步锁asyncio.Lock(),并在producer和consumer协程中使用with关键字来对锁进行上下文管理。

这样,在任何时候,只会有一个协程在执行添加或获取操作,防止了队列被卡住的情况出现。

相关内容

热门资讯

透视新版!hhpoker透视脚... 透视新版!hhpoker透视脚本视频,wpk透视辅助,今日重大通报(有挂总结)该软件可以轻松地帮助玩...
透视透视!wpk有没有脚本,a... 透视透视!wpk有没有脚本,aapoker辅助是真的吗,一起来探讨(有挂教学);1、打开软件启动之后...
透视ai!hhpoker透视功... 透视ai!hhpoker透视功能如何下载,wepoker免费永久脚本,推荐攻略(有挂辅助挂)1、在a...
透视肯定!智星德州菠萝透视插件... 透视肯定!智星德州菠萝透视插件工具,wpk脚本是什么,科技揭秘(有挂黑科技)1、许多玩家不知道智星德...
透视工具!wpk有脚本吗,德普... 透视工具!wpk有脚本吗,德普之星透视辅助插件,查到实测(有挂透明);1、ai辅助优化,发牌逻辑科技...
透视苹果版!wpk透视脚本链接... 透视苹果版!wpk透视脚本链接,wpk有脚本吗,分享开挂内幕(有挂黑科技)1、上手简单,内置详细流程...
透视黑科技!hhpoker辅助... 透视黑科技!hhpoker辅助软件下载,aapoker透视插件下载,必备攻略(有挂教学);1、下载好...
透视讲解!智星德州菠萝插件官网... 透视讲解!智星德州菠萝插件官网,德朴之星脚本,每日必看(有挂教程);1、构建自己的智星德州菠萝辅助插...
透视透视!德普之星辅助器app... 透视透视!德普之星辅助器app,德朴之星脚本,实测交流(有挂辅助挂);该软件可以轻松地帮助玩家将透视...
透视中牌率!hhpoker怎么... 透视中牌率!hhpoker怎么开透视,wepoker透视脚本免费,指导大家(有挂黑科技)所有人都在同...