Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
处理队列所需的线程锁+;python_Python_Multithreading - Fatal编程技术网

处理队列所需的线程锁+;python

处理队列所需的线程锁+;python,python,multithreading,Python,Multithreading,我有一个队列,在其中我必须在几个线程中使用它,因此在处理这个队列时有必要获取线程锁以避免冲突,因为我知道有必要为变量或其他资源获取线程锁,但对于队列来说没有什么混淆 谢谢最简单的解决方案是使用互斥锁(lock),它将保护对队列的所有访问。只需使pop和push使用它即可 一个可能的性能更好的解决方案可能是使用更精细的锁定。如果您使用模块队列中的队列,它将为您处理锁定问题。有关更多信息,请参阅此页:(“此模块中的队列类实现所有必需的锁定语义。”)

我有一个队列,在其中我必须在几个线程中使用它,因此在处理这个队列时有必要获取线程锁以避免冲突,因为我知道有必要为变量或其他资源获取线程锁,但对于队列来说没有什么混淆


谢谢

最简单的解决方案是使用互斥锁(lock),它将保护对队列的所有访问。只需使
pop
push
使用它即可


一个可能的性能更好的解决方案可能是使用更精细的锁定。

如果您使用模块队列中的队列,它将为您处理锁定问题。有关更多信息,请参阅此页:(“此模块中的队列类实现所有必需的锁定语义。”)