我相对较新的Python并且正在寻找像Python JoinableQueue这样的东西,但它具有双端或类似堆栈的行为。具体来说,由于我在不同进程中处理队列中的项目,我希望能够在已经在队列中之前添加要处理的新项目(即推入堆栈或添加到双端队列的前面)。 Java有BlockingDeque,它完全符合我的要求,但我无法在这个项目中使用Java。任何关于这个问题的指针或新方法都会受到赞赏!
答案 0 :(得分:0)
使用multiprocessing
,队列语义不仅仅是在进程间通信之上实现的,而是固有的。因此,最简单的解决方案可能是使用JoinableQueue
构建可连接堆栈,并通过首先将所有任务放入临时队列,然后对新元素进行排队并从临时队列中填充任务来实现对堆栈的推送。从不同进程推送到堆栈将需要一些锁定来维持堆栈的顺序。