问题
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.
回答1:
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 gets can block each other, and concurrent puts can block each other (modulo your use of the block parameter), but that gets and puts do not mutually block.
来源:https://stackoverflow.com/questions/2275108/python-multi-processing-queue-is-putting-independent-from-getting