Python多进程队列:放入和取出是独立的吗?

2 投票
1 回答
829 浏览
提问于 2025-04-15 19:21

把一个对象放进多进程队列和从里面取出一个对象,这两件事是互不影响的吗?

换句话说,如果有一个进程P1在放东西,而另一个进程P2在取东西,放东西的这个过程会不会被阻塞?

更新:我假设这个队列是无限的。

1 个回答

2

我对源代码的理解是,get 会获取一个读取锁,这个锁和 put 获取的锁(叫 _notempty)是独立的。如果我理解得没错,多个同时进行的 get 操作可能会互相阻塞,而多个同时进行的 put 操作也可能会互相阻塞(这取决于你使用的 block 参数),但是 getput 之间是不会互相阻塞的。

撰写回答