2011-01-19 3 views
2

現在、Pythonでストレステスト用の接続マネージャーを作成していますが、キューがいっぱいになることはありません。この疑似コードは、私ができるよりもよく説明します:マルチプロセスの生成。プロセスが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であるのか説明できますか?

Definition: processQueue.qsize(self) 
Docstring: 
    Return the approximate size of the queue (not reliable!). 

ので、あなたは、キューが空であるかどうかを伝えるためにqsizeに頼るべきではありません:processQueue.qsizeについて

+0

また、Queue.Queueとマルチプロセッシングの違いを理解できませんでした.Queue! – afuzzyllama

答えて

3

は、ドキュメントが言うことに注意してください。

また、あなたがラインに達することができるためprocessQueue.putが呼び出されprocessQueue.qsize前に、キューは確かに永遠にその瞬間に空が、空ではないかもしれません。

+0

多くの引数があるとどうなりますか?例:args =(username、password、url、processQueue)...これはまだ適用されますか? – afuzzyllama

関連する問題