多进程的繁殖。进程在Python中未正确填充队列
我目前正在用Python编写一个压力测试的连接管理器,似乎我的队列从来没有填满过。这段伪代码比我能解释得更好:多进程的繁殖。进程在Python中未正确填充队列,python,multiprocessing,Python,Multiprocessing,我目前正在用Python编写一个压力测试的连接管理器,似乎我的队列从来没有填满过。这段伪代码比我能解释得更好: def wget(processQueue) currProcess = subprocess.Popen(./wget) processQueue.put(currProcess) def connection(processQueue) process = multiprocessing.Process(target=wget, args=(process
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吗 关于
processQueue.qsize
,请注意文档中说:
Definition: processQueue.qsize(self)
Docstring:
Return the approximate size of the queue (not reliable!).
因此,您不应该依靠qsize
来告诉您队列是否为空
另外,由于您可能在调用
processQueue.put
之前到达行processQueue.qsize
,因此此时队列可能确实为空,但不会永远为空 如果我有很多参数,例如:args=(用户名、密码、url、processQueue),会发生什么。。。这仍然适用吗?另外,我没有意识到Queue.Queue和multiprocessing.Queue之间的区别!