Python 多进程应用示例

python中threading模块详解(一)
[url]http://blog.chinaunix.net/uid-27571599-id-3484048.html[/url]


import multiprocessing
import time

def func(name):
outputline=name
for i in range(3):
outputline+= " repeat "+str(i)
time.sleep(1)
return outputline

def main():
pool=multiprocessing.Pool(processes=4)
result=[]
for i in range(4):
pname="cpu_%d"%i
result.append(pool.apply_async(func, (pname, )))
pool.close()
pool.join()
for res in result:
print res.get()
print "all processes done"

if __name__ == '__main__':
main()


[b] 示例2,使用锁同步[/b]

import multiprocessing
import time

def func(name,lock):
outputline=name
for i in range(3):
outputline+= " repeat "+str(i)
lock.acquire()
print name+" repeat "+str(i)
lock.release()
time.sleep(1)
return outputline

def main():
lock=multiprocessing.Lock()
subprocesses=[]
for i in range(4):
pname="cpu_%d"%i
process=multiprocessing.Process(target=func, args=(pname,lock))
process.start()
subprocesses.append(process)

for p in subprocesses:
p.join()

print "all processes done"

if __name__ == '__main__':
main()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值