线程安全的python双端队列到列表转换

问题描述

我在生产者->消费者设计中使用 Python 双端队列作为传输机制。双端队列仅限于 maxlen 并且线程 #1 以快速的速度向其附加值。线程 #2 以块的形式缓慢地消耗这些值,但由于我想适应硬件设备的时间变化,我将双端队列的内容作为列表读取,然后在不弹出的情况下对其进行处理。这意味着我最终得到的 maxlen 值始终可用于运行我的过滤器。

list_to_process = list(dq)
for item in list_to_process:
    # some processing

然而,deque 文档只保证 append 和 pop 是线程安全的。这让我觉得我正在创建的列表可能会在处理阶段发生变化。任何人都可以确认是这样吗?

如果是这样,我认为我最好的选择是在锁定期间进行深度复制。非常欢迎所有替代建议。

谢谢

埃德

解决方法

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

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

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