Python中的同步集

Python中的同步集,python,multithreading,Python,Multithreading,Python中是否有同步的set类?喜欢我正在向JMS队列发送消息,需要处理接收: 在一组中跟踪已发送的邮件 收到收据后,将其从集合中删除 当集合为空时,设置一个事件 与队列具有相同界面的东西将是完美的,但我需要能够以任何顺序删除东西。查找对象锁定。 基本上,可以基于对象锁定线程的执行。处理完对象后,释放它,线程继续。查找对象锁定。 基本上,可以基于对象锁定线程的执行。处理完对象后,将其释放,线程将继续。请在引擎盖下使用() 因此,您可以扩展Queue.Queue类并添加一个新方法,在其

Python中是否有同步的set类?喜欢我正在向JMS队列发送消息,需要处理接收:

  • 在一组中跟踪已发送的邮件
  • 收到收据后,将其从集合中删除
  • 当集合为空时,设置一个事件
队列
具有相同界面的东西将是完美的,但我需要能够以任何顺序删除东西。

查找对象锁定。

基本上,可以基于对象锁定线程的执行。处理完对象后,释放它,线程继续。

查找对象锁定。

基本上,可以基于对象锁定线程的执行。处理完对象后,将其释放,线程将继续。

请在引擎盖下使用()

因此,您可以扩展Queue.Queue类并添加一个新方法,在其中您可以调用deque方法(如果您是指以任何顺序删除元素),并确保您的新方法是线程安全的。请查看该方法以查看您应该执行的操作的示例

嗯,这有点冒险,如果你错过了一些东西,比赛条件问题很难调试,但希望这能给出一个清晰的观点

在发动机罩下使用合适的工具()

因此,您可以扩展Queue.Queue类并添加一个新方法,在其中您可以调用deque方法(如果您是指以任何顺序删除元素),并确保您的新方法是线程安全的。请查看该方法以查看您应该执行的操作的示例

嗯,这有点冒险,如果你错过了一些东西,比赛条件问题很难调试,但希望这能给出一个清晰的观点

集合操作是原子的(因为GIL)。然而,并没有原子性的“检查集合是否为空并设置事件”。集合操作是原子性的(因为GIL)。然而,并没有原子“检查集合是否为空并设置事件”。