有类似Python Joinableque的产品吗?

有类似Python Joinableque的产品吗?,python,multithreading,Python,Multithreading,我对Python比较陌生,正在寻找类似Python的东西,但它有deque或类似堆栈的行为。具体来说,由于我在不同的进程中处理队列中的项目,我希望能够在队列中已有的项目之前添加要处理的新项目(即推到堆栈上或添加到数据块的前面)。Java有我想要的功能,但我不能真正将Java用于这个项目。任何关于这个问题的建议或新的思考方式都将不胜感激 对于多处理,队列语义不仅是在进程间通信之上实现的,而且是它固有的。因此,最简单的解决方案可能是使用JoinableQueue构建一个可连接堆栈,并通过首先将所有任

我对Python比较陌生,正在寻找类似Python的东西,但它有deque或类似堆栈的行为。具体来说,由于我在不同的进程中处理队列中的项目,我希望能够在队列中已有的项目之前添加要处理的新项目(即推到堆栈上或添加到数据块的前面)。Java有我想要的功能,但我不能真正将Java用于这个项目。任何关于这个问题的建议或新的思考方式都将不胜感激

对于
多处理
,队列语义不仅是在进程间通信之上实现的,而且是它固有的。因此,最简单的解决方案可能是使用
JoinableQueue
构建一个可连接堆栈,并通过首先将所有任务放入临时队列,然后将新元素排队并从临时队列中填充任务来实现对堆栈的推送。从不同的进程推送到堆栈将需要一些锁定来维护堆栈的顺序。

您可以将JoinableQueue子类化。通常可以通过使用两个(可连接的)队列来实现一个出列。有什么特别的东西不让你这么做吗?是的!我尝试将JoinableQueue子类化,因为它在内部使用deque。不幸的是,它还有一个内部运行的QueueFeederThread,该线程会立即耗尽内部deque(如果您正在查看代码,请使用self.\u缓冲区),并将添加到deque的任何内容发送到管道,而deque行为将丢失。如果出现这种情况,我可能会使用两个JoinableQueue来实现我自己的Deque,但如果可能的话,我更愿意避免它。谢谢Thomas。我真的希望我不需要自己实现这个,但事情就是这样。