python multi-processing queue: is putting independent from getting?
Is putting
an object in a multi-processing queue independent from getting
an object from it?
In other words, will putting
an object block the process P1 if another process P2 is getting
from 开发者_运维技巧it?
Update: I am assuming an infinite queue.
My reading of the source code is that get
obtains a read lock, which is independent of of the lock (called _notempty
) acquired by put
. If I understand correctly, concurrent get
s can block each other, and concurrent put
s can block each other (modulo your use of the block
parameter), but that gets and puts do not mutually block.
精彩评论