首页 > 编程 > Python > 正文

python实现在每个独立进程中运行一个函数的方法

2019-11-25 17:40:39
字体:
来源:转载
供稿:网友

本文实例讲述了python实现在每个独立进程中运行一个函数的方法。分享给大家供大家参考。具体分析如下:

这个简单的函数可以同于在单独的进程中运行另外一个函数,这对于释放内存资源非常有用

#!/usr/bin/env pythonfrom __future__ import with_statementimport os, cPickledef run_in_separate_process(func, *args, **kwds):  pread, pwrite = os.pipe()  pid = os.fork()  if pid > 0:    os.close(pwrite)    with os.fdopen(pread, 'rb') as f:      status, result = cPickle.load(f)    os.waitpid(pid, 0)    if status == 0:      return result    else:      raise result  else:     os.close(pread)    try:      result = func(*args, **kwds)      status = 0    except Exception, exc:      result = exc      status = 1    with os.fdopen(pwrite, 'wb') as f:      try:        cPickle.dump((status,result), f, cPickle.HIGHEST_PROTOCOL)      except cPickle.PicklingError, exc:        cPickle.dump((2,exc), f, cPickle.HIGHEST_PROTOCOL)    os._exit(0)#an example of usedef treble(x):  return 3 * xdef main():  #calling directly  print treble(4)  #calling in separate process  print run_in_separate_process(treble, 4)

希望本文所述对大家的Python程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表