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


Posted in Python onApril 23, 2015

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

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

#!/usr/bin/env python
from __future__ import with_statement
import os, cPickle
def 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 use
def treble(x):
  return 3 * x
def main():
  #calling directly
  print treble(4)
  #calling in separate process
  print run_in_separate_process(treble, 4)

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

Python 相关文章推荐
python多线程threading.Lock锁用法实例
Nov 01 Python
Python编程实现删除VC临时文件及Debug目录的方法
Mar 22 Python
Python用csv写入文件_消除空余行的方法
Jul 06 Python
pyqt5 QProgressBar清空进度条的实例
Jun 21 Python
python使用paramiko模块通过ssh2协议对交换机进行配置的方法
Jul 25 Python
python实现翻转棋游戏(othello)
Jul 29 Python
python爬虫selenium和phantomJs使用方法解析
Aug 08 Python
django 自定义过滤器(filter)处理较为复杂的变量方法
Aug 12 Python
python文件绝对路径写法介绍(windows)
Dec 25 Python
Django跨域资源共享问题(推荐)
Mar 09 Python
Python带参数的装饰器运行原理解析
Jun 09 Python
python正则表达式re.search()的基本使用教程
May 21 Python
python输出指定月份日历的方法
Apr 23 #Python
python打开文件并获取文件相关属性的方法
Apr 23 #Python
Python实现计算文件夹下.h和.cpp文件的总行数
Apr 23 #Python
Python实现把回车符\r\n转换成\n
Apr 23 #Python
Python实现对比不同字体中的同一字符的显示效果
Apr 23 #Python
Python3里的super()和__class__使用介绍
Apr 23 #Python
Python实现的飞速中文网小说下载脚本
Apr 23 #Python
You might like
PHP通过bypass disable functions执行系统命令的方法汇总
2018/05/02 PHP
PHP Beanstalkd消息队列的安装与使用方法实例详解
2020/02/21 PHP
基于jquery的滚动条滚动固定div(附演示下载)
2012/10/29 Javascript
javascript游戏开发之《三国志曹操传》零部件开发(四)用地图块拼成大地图
2013/01/23 Javascript
Javascript计算两个marker之间的距离(Google Map V3)
2013/04/26 Javascript
Json字符串转换为JS对象的高效方法实例
2013/05/01 Javascript
JS操作select下拉框动态变动(创建/删除/获取)
2013/06/02 Javascript
JS实现黑客帝国文字下落效果
2015/09/01 Javascript
Jquery操作cookie记住用户名
2016/03/29 Javascript
关于JavaScript 原型链的一点个人理解
2016/07/31 Javascript
js+css3实现旋转效果
2017/01/20 Javascript
Bootstrap中data-target 到底是什么
2017/02/14 Javascript
js 实现获取name 相同的页面元素并循环遍历的方法
2017/02/14 Javascript
jQuery插件zTree实现获取一级节点数据的方法
2017/03/08 Javascript
Vue 父子组件、组件间通信
2017/03/08 Javascript
vue2.0 与 bootstrap datetimepicker的结合使用实例
2017/05/22 Javascript
ReactJs实现树形结构的数据显示的组件的示例
2017/08/18 Javascript
python实现百度关键词排名查询
2014/03/30 Python
Python输出汉字字库及将文字转换为图片的方法
2016/06/04 Python
Python使用PyCrypto实现AES加密功能示例
2017/05/22 Python
Python3正则匹配re.split,re.finditer及re.findall函数用法详解
2018/06/11 Python
python检测主机的连通性并记录到文件的实例
2018/06/21 Python
Python产生Gnuplot绘图数据的方法
2018/11/09 Python
pycharm配置当鼠标悬停时快速提示方法参数
2019/07/31 Python
python 使用socket传输图片视频等文件的实现方式
2019/08/07 Python
Django怎么在admin后台注册数据库表
2020/11/14 Python
历史系自荐信范文
2013/12/24 职场文书
物业工作计划书
2014/01/10 职场文书
物业管理计划书
2014/01/10 职场文书
五好党支部事迹材料
2014/02/06 职场文书
小学国庆节活动方案
2014/02/11 职场文书
承诺书怎么写
2014/03/26 职场文书
高中教师先进事迹材料
2014/08/22 职场文书
《周恩来的四个昼夜》观后思想汇报范文两篇
2014/09/10 职场文书
党员评议思想汇报
2014/10/08 职场文书
Nginx反向代理、重定向
2022/04/13 Servers