Python3 Asyncio 在并发任务之间共享资源

标签 python python-3.x concurrency python-asyncio shared-resource

我有一个用 Python3.5 编写的网络应用程序,它利用了并发处理每个传入连接的 python Asyncio。

在每个并发连接上,我想将连接的客户端数据存储在列表中。我担心如果两个客户端同时连接(这是可能的),那么两个任务都会尝试同时写入列表,这肯定会引起问题。我将如何解决这个问题?

最佳答案

asyncio 仅在屈服点(await 表达式)上进行上下文切换,因此两个并行任务不会在 处执行相同 时间。

但是如果竞争条件仍然存在(这取决于具体的代码结构),您可以使用 asyncio synchronization primitivesqueues .

关于Python3 Asyncio 在并发任务之间共享资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38787989/

相关文章:

python - 如何使用 pandas 查找内存泄漏

python - 如何使用python在文本中查找关键字

python - 是否可以连接到 https URL?

java - 与 HikariCP 的并发

java - java并发编程中的可见性问题

python - 更新 Django-Select2 AutoModelSelect2Field 的查询集

python - L-BFGS-B 中的拉格朗日乘子

python - 在python中并行化for循环

python-3.x - 西类牙语分词器

ios - 当主线程针对另一个调度队列发出 dispatch_sync 时,主队列/主线程会发生什么?