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