直接上代码:

#!/bin/env python
import time         
from multiprocessing import Process,Lock,Pool
                    ##导入进程模块Process,锁模块Lock,进程池模块Pool。
def sayHi(num):             ##定义一个函数
    time.sleep(1)           ##睡一秒,目的是为了更直观感受进程池的作用
    return num*num          ##返回值

p = Pool(processes=5)       ##设定进程池一次最多放5个进程

result_list=[]              ##定义一个空数列

for i in range(13):
    result_list.append(p.apply_async(sayHi,[i]))
    ##apply_async(向进程池添加任务 非阻塞方法),运行后的结果添加进数列

for res in result_list:
    print res.get()       ##从数列中取出结果,并打印
#!/bin/env python
import time
from multiprocessing import Process,Lock,Manager

def run(lis,n):
    time.sleep(1)
    lis.append(n)
    print lis
lock=Lock()
m=Manager()         ##一个Manager对象会控制一个服务器进程,其他进程可以通过代理的方式来访问这个服务器进程。
l=m.list(range(1))

for i in range(10):
    p = Process(target=run,args=(l,i))
    p.start()
    p.join()
Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐