Python中是否存在同步集合类?像Queue.Queue
?我将消息发送到JMS队列和需要处理reciepts:Python中的同步集合
- 跟踪发送的消息在一组
- 当收到一张收据,删除它从集合
- 当设定为空,设置一个事件
与Queue
相同的界面将是完美的,但我需要能够以任何顺序删除的东西。
Python中是否存在同步集合类?像Queue.Queue
?我将消息发送到JMS队列和需要处理reciepts:Python中的同步集合
与Queue
相同的界面将是完美的,但我需要能够以任何顺序删除的东西。
寻找对象锁定。 http://docs.python.org/library/threading.html
基本上,您基于对象锁定线程的执行。当你完成对象时,你释放它并且线程继续。
好吧Queue.Queue使用底下的deque(and deque is not thread safe)。
所以你可以做的是扩展Queue.Queue类并添加一个新方法,并且你可以调用deque方法deque.remove()(如果这是你的意思,通过删除任何顺序的元素),并确保你的新方法是线程安全的,看看Queue.Queue.put()方法,看看你应该做什么的例子。
好吧,如果你错过了某些东西,那么它有点冒险,并且竞争条件问题很难调试,但是希望这可以给出一个清晰的视图。
设置操作是原子的(因为GIL)。然而,没有原子“检查设置是否为空并设置了事件”。 – 2011-05-11 18:43:57