处理队列时需要线程锁 + Python
我有一个队列,需要在多个线程中使用。那么在处理这个队列的时候,是否有必要获取线程锁,以避免出现冲突呢?我知道对于变量或其他资源,获取线程锁是必要的,但对于队列我有点困惑。
谢谢
2 个回答
0
最简单的解决办法是使用一个互斥锁(mutex),它可以保护对队列的所有访问。只需要让 pop
和 push
操作都使用这个锁就可以了。
如果想要更好的性能,可以考虑使用更细粒度的锁定方式。
11
如果你在使用Queue这个模块里的队列,它会帮你处理锁定的问题。想了解更多信息,可以查看这个页面:http://docs.python.org/library/queue.html(“这个模块里的Queue类实现了所有需要的锁定机制。”)