簡體   English   中英

Python:如何使用pickle來轉儲Queue對象?

[英]Python: how to use pickle to dump Queue objects?

問題在於直接使用pickle來轉儲Queue會引發異常。 我已經讀過這篇類似的文章,但還沒有得到我的答案: python中的Pickle Queue對象

我真的不能用collections.deque替換Queue,因為我正在運行一個多線程程序,其中Queue用於同步。

那我該怎么做呢?

如果在所有使用者和生產者線程終止后,需要從(一個和唯一一個)主線程中保存隊列中的剩余內容, 只需將隊列轉儲到簡單列表中,然后使用pickle保留該列表即可。

def qdumper(q):
    try:
        yield q.get(False)
    except queue.Empty:
        pass

remaining = [item for item in qdumper(my_queue)]
pickle.dump(remaining, ....)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM