我知道有关池的多处理的基本用法,并且我使用apply_async()func来避免阻塞,我的问题代码如下:
from multiprocessing import Pool, Queue
import time
q = Queue(maxsize=20)
script = "my_path/my_exec_file"
def initQueue():
...
def test_func(queue):
print 'Coming'
While True:
do_sth
...
if __name__ == '__main__':
initQueue()
pool = Pool(processes=3)
for i in xrange(11,20):
result = pool.apply_async(test_func, (q,))
pool.close()
while True:
if q.empty():
print 'Queue is emty,quit'
break
print 'Main Process Lintening'
time.sleep(2)
结果输出始终是主流程Linstening,我可以找到单词' Coming' .. 上面的代码没有语法错误,也没有任何异常。 任何人都可以提供帮助,谢谢!