我目前正在为Python中的压力测试编写一个连接管理器,似乎我的队列永远不会填满。这个假的代码将比我能更好地解释它:
def wget(processQueue)
currProcess = subprocess.Popen(./wget)
processQueue.put(currProcess)
def connection(processQueue)
process = multiprocessing.Process(target=wget, args=(processQueue,))
process.start()
processQueue = Queue.Queue()
newConnection = multiprocessing.Process(target=connection, args=(processQueue,))
newConnection.start()
processQueue.qsize() # This is 0
无论如何可以解释为什么我的队列大小为0?
答案 0 :(得分:3)
关于processQueue.qsize
,请注意文档说:
Definition: processQueue.qsize(self)
Docstring:
Return the approximate size of the queue (not reliable!).
所以你不应该依赖qsize
告诉你队列是否为空。
此外,由于您可能在调用processQueue.qsize
之前到达processQueue.put
行,因此该队列当时可能确实为空,但不会永远为空。