如何使用threading锁定异步功能,同时可以从多个线程访问对象

问题描述

我想在异步函数中使用threading.Lock()asyncio.Lock()不是线程安全的,所以我不能执行with await asyncio.Lock():。我需要使用threading.Lock()的原因是因为该对象可以可以通过多个区域访问,因此它在Web应用程序中使用,运行它的服务器可以启动许多线程。这样做的有效方法是什么?到目前为止,我已经尝试了一个使用锁的简单函数:

1)

async def main():
    with await threading.Lock():
        a = 6
    return a

TypeError: object _thread.lock can't be used in 'await' expression
async def main():
    async with threading.Lock():
            a = 1564666546
    return a

AttributeError: __aexit__

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)