我需要多个线程来访问这个heapq。所以我想确保使用heapq进行这样的操作。
答案 0 :(得分:1)
不,使用heapq
库不是线程安全的。使用锁来协调访问。
请注意library documentation的source code链接;你可以随时看看自己的行为方式。您将看到该模块在常规Python list
上运行,并且没有锁定代码。
如果你想要的只是一个优先级队列,那么只需看Queue.PriorityQueue()
class(在Python 3中重命名为queue.PriorityQueue
)。它完全是线程安全的。