问题描述
我在生产者->消费者设计中使用 Python 双端队列作为传输机制。双端队列仅限于 maxlen 并且线程 #1 以快速的速度向其附加值。线程 #2 以块的形式缓慢地消耗这些值,但由于我想适应硬件设备的时间变化,我将双端队列的内容作为列表读取,然后在不弹出的情况下对其进行处理。这意味着我最终得到的 maxlen 值始终可用于运行我的过滤器。
list_to_process = list(dq)
for item in list_to_process:
# some processing
然而,deque 文档只保证 append 和 pop 是线程安全的。这让我觉得我正在创建的列表可能会在处理阶段发生变化。任何人都可以确认是这样吗?
如果是这样,我认为我最好的选择是在锁定期间进行深度复制。非常欢迎所有替代建议。
谢谢
埃德
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)