设为首页 加入收藏

TOP

Python之多进程multiprocessing
2014-11-23 22:10:05 来源: 作者: 【 】 浏览:11
Tags:Python 进程 multiprocessing

一:multiprocess基本使用


multiprocessing是要比fork更高级的库了,使用multiprocessing可以更加轻松的实现多进程程序。multiprocessing也提供了很多进程同步和进程通信的方法。


#!/usr/bin/env python


import multiprocessing


import time


def clock(interval):


while True:


print "The time is {0}".format(time.ctime())


time.sleep(interval)


if __name__ == "__main__":


for i in range(3):


p = multiprocessing.Process(target=clock,args=(1,))


p.start()


p.join()



join()代表启动多进程,但是阻塞并发运行,一个进程执行结束后再执行第二个进程。可以给其设置一个timeout值比如join(5)代表5秒后无论当前进程是否结果都继续并发执行第二个进程。


二:进程同步


对于一些互斥的资源来说,进程间需要进程互斥来访问。否则导致资源访问受阻,或者最后的结果混乱等情况。对于标准输出这个资源来说,如果多个资源同属输出信息,可能会导致输出的信息混乱。所以需要使用锁来避免资源互斥访问。


from multiprocessing import Process,Lock


def f(l,i):


l.acquire()


print "hello world",i


l.release()



if __name__ == "__main__":


lock = Lock()


for num in range(10):


Process(target=f,args=(lock,num)).start()


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Linux C编程如何使用联机帮助来解.. 下一篇OpenGL 4.4 和 Android

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: