Python之多进程multiprocessing

一:multiprocess基本使用

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

Python核心编程 第二版》.(Wesley J. Chun ).[高清PDF中文版]

《Python开发技术详解》.( 周伟,宗杰).[高清PDF扫描版+随书视频+代码]

Python脚本获取Linux系统信息

Ubuntu下用Python搭建桌面算法交易研究环境

#!/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()

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/1c504d0dbb85c2f705b702301ff42b0f.html