当我使用multiprocessing的apply_async()函数时,我看不到要调用的任何子进程.Pool

时间:2016-10-08 12:47:46

标签: python

我知道有关池的多处理的基本用法,并且我使用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' .. 上面的代码没有语法错误,也没有任何异常。 任何人都可以提供帮助,谢谢!

0 个答案:

没有答案