Пример #1
0
def worker(num):
    for i in range(5):
        print("=====pid=%d--num=%d=====" % (os.getpid(), num))
        time.sleep(1)


pool = Pool(3)
'''
Pool(3):表示进程池中最多有三个任务共同执行
'''

for i in range(10):
    print("-----%d-----" % i)
    pool.apply_async(worker, (i, ))
'''
pool.apply_asynnc():向进程池中添加任务
注意:如果添加的任务数量,超过了进程池中进程的个数,这种情况下,不会出现添加不进去的情况。
	 添加到进程中的任务,如果还没有被执行,那么他们将会等待进程池执行完当前的进程,然后再添加进去执行,自动的使用刚刚执行完的这个进程。然后完成当前的新任务。  
'''

print("-----start-----")

pool.close()
pool.join()
'''
join:主进程 创建/添加 任务后,主进程 默认不会等待进程池中的任务执行完后才结束。而是当主进程,任务做完后,立马结束。
如果这个地方没有join,会导致进程池中的任务不会执行
'''

print("-----end-----")