python - 不断附加数据时从python中的多个线程并发访问列表

标签 python multithreading list thread-safety

我们有一个列表,数据会按固定的时间间隔附加到该列表中,并且此过程需要时间,因此在写入期间使用通常的互斥锁来保护整个列表并不是最有效的解决方案。如何以更并发的方式组织对此类列表的读取和写入?

最佳答案

在多个线程中使用 list.append()list.extend() 时不需要锁定。这些操作是线程安全的。

以下是线程安全操作的简要概述:https://docs.python.org/3/faq/library.html#what-kinds-of-global-value-mutation-are-thread-safe

还值得一提的是,从性能的角度来看,在单独的线程中准备子列表,然后使用这些子列表扩展主列表要快得多。

关于python - 不断附加数据时从python中的多个线程并发访问列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42806239/

相关文章:

Python Flask 分页仅提交最后一页

python - Django-如何排除父类的字段

java - Android AsyncTask 媒体播放器通信

c - 为列表节点分配内存的安全方法

java - Java 中的两侧(双向)列表

python - Vagrant 安装 Anaconda Python?

python - Order by 可以与模型中的属性一起使用吗?

c# - 同时运行多个线程,不会运行两次或失败

Java多线程比单线程慢

python - 以列表为值python的二维字典