python实现在每个独立进程中运行一个函数的方法
本文实例讲述了python实现在每个独立进程中运行一个函数的方法。分享给大家供大家参考。具体分析如下:
这个简单的函数可以同于在单独的进程中运行另外一个函数,这对于释放内存资源非常有用
#!/usr/bin/envpython from__future__importwith_statement importos,cPickle defrun_in_separate_process(func,*args,**kwds): pread,pwrite=os.pipe() pid=os.fork() ifpid>0: os.close(pwrite) withos.fdopen(pread,'rb')asf: status,result=cPickle.load(f) os.waitpid(pid,0) ifstatus==0: returnresult else: raiseresult else: os.close(pread) try: result=func(*args,**kwds) status=0 exceptException,exc: result=exc status=1 withos.fdopen(pwrite,'wb')asf: try: cPickle.dump((status,result),f,cPickle.HIGHEST_PROTOCOL) exceptcPickle.PicklingError,exc: cPickle.dump((2,exc),f,cPickle.HIGHEST_PROTOCOL) os._exit(0) #anexampleofuse deftreble(x): return3*x defmain(): #callingdirectly printtreble(4) #callinginseparateprocess printrun_in_separate_process(treble,4)
希望本文所述对大家的Python程序设计有所帮助。