[英]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.