【发布时间】:2011-06-20 08:39:14
【问题描述】:
我有一个队列,我必须在多个线程中使用它,所以在处理这个单个队列时是否有必要获取线程锁以避免冲突,因为我知道有必要为变量或其他获取线程锁资源,但对队列有点困惑。
谢谢
【问题讨论】:
标签: python multithreading
我有一个队列,我必须在多个线程中使用它,所以在处理这个单个队列时是否有必要获取线程锁以避免冲突,因为我知道有必要为变量或其他获取线程锁资源,但对队列有点困惑。
谢谢
【问题讨论】:
标签: python multithreading
如果您使用模块队列中的队列,它将为您处理锁定。有关更多信息,请参阅此页面:http://docs.python.org/library/queue.html(“此模块中的 Queue 类实现了所有必需的锁定语义。”)
【讨论】:
最简单的解决方案是使用互斥(锁)来保护对队列的所有访问。只需让pop 和push 使用它。
一个可能的性能更好的解决方案可能是使用更细粒度的锁定。
【讨论】: