我有一个用 Python3.5 编写的网络应用程序,它利用了并发处理每个传入连接的 python Asyncio。
在每个并发连接上,我想将连接的客户端数据存储在列表中。我担心如果两个客户端同时连接(这是可能的),那么两个任务都会尝试同时写入列表,这肯定会引起问题。我将如何解决这个问题?
最佳答案
asyncio 仅在屈服点(await
表达式)上进行上下文切换,因此两个并行任务不会在 处执行相同 时间。
但是如果竞争条件仍然存在(这取决于具体的代码结构),您可以使用 asyncio synchronization primitives和 queues .
关于Python3 Asyncio 在并发任务之间共享资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38787989/