Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux / Python之多进程multiprocessing

一:multiprocess基本使用multiprocessing是要比fork更高级的库了,使用multiprocessing可以更加轻松的实现多进程程序。multiprocessing也提供了很多进程同步和进程通信的方法。 《Python核心编程 第二版》.(Wesley J. Chun ).[高清PDF中文版] http://www.linuxidc.com/Linux/2013-06/85425.htm《Python开发技术详解》.( 周伟,宗杰).[高清PDF扫描版+随书视频+代码] http://www.linuxidc.com/Linux/2013-11/92693.htmPython脚本获取Linux系统信息 http://www.linuxidc.com/Linux/2013-08/88531.htm在Ubuntu下用Python搭建桌面算法交易研究环境 http://www.linuxidc.com/Linux/2013-11/92534.htm#!/usr/bin/env pythonimport multiprocessingimport timedef 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,Lockdef 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.linuxidc.com/Linux/2014-07/104158p2.htm