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 相关文章推荐
pymongo给mongodb创建索引的简单实现方法
May 06 Python
详解Python中的条件判断语句
May 14 Python
python制作爬虫并将抓取结果保存到excel中
Apr 06 Python
python去除空格和换行符的实现方法(推荐)
Jan 04 Python
Python制作刷网页流量工具
Apr 23 Python
Pandas统计重复的列里面的值方法
Jan 30 Python
python中tkinter的应用:修改字体的实例讲解
Jul 17 Python
使用Python给头像戴上圣诞帽的图像操作过程解析
Sep 20 Python
python异常处理和日志处理方式
Dec 24 Python
Python实现加密接口测试方法步骤详解
Jun 05 Python
Django Auth用户认证组件实现代码
Oct 13 Python
python 实现的车牌识别项目
Jan 25 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
Ubuntu中搭建Nginx、PHP环境最简单的方法
2015/03/05 PHP
Yii框架组件和事件行为管理详解
2016/05/20 PHP
PHP自带方法验证邮箱、URL、IP是否合法的函数
2016/12/08 PHP
PHP实现接收二进制流转换成图片的方法
2017/01/10 PHP
php 替换文章中的图片路径,下载图片到本地服务器的方法
2018/02/06 PHP
js怎么判断flash swf文件是否加载完毕
2014/08/14 Javascript
微信小程序 数据绑定详解及实例
2016/10/25 Javascript
less简单入门(CSS 预处理语言)
2017/03/08 Javascript
angular select 默认值设置方法
2017/06/23 Javascript
详解vue-cli之webpack3构建全面提速优化
2017/12/25 Javascript
微信小程序模拟cookie的实现
2018/06/20 Javascript
记录一篇关于redux-saga的基本使用过程
2018/08/18 Javascript
微信小程序 Animation实现图片旋转动画示例
2018/08/22 Javascript
详解Webpack-dev-server的proxy用法
2018/09/08 Javascript
深入理解移动前端开发之viewport
2018/10/19 Javascript
微信小程序制作表格的方法
2019/02/14 Javascript
JavaScript onclick事件使用方法详解
2020/05/15 Javascript
详解JavaScript原型与原型链
2020/11/16 Javascript
用Python实现随机森林算法的示例
2017/08/24 Python
Win7下Python与Tensorflow-CPU版开发环境的安装与配置过程
2018/01/04 Python
python控制windows剪贴板,向剪贴板中写入图片的实例
2018/05/31 Python
python使用xlrd和xlwt读写Excel文件的实例代码
2018/09/05 Python
Python 调用 Outlook 发送邮件过程解析
2019/08/08 Python
django xadmin action兼容自定义model权限教程
2020/03/30 Python
使用Python防止SQL注入攻击的实现示例
2020/05/21 Python
高考考python编程是真的吗
2020/07/20 Python
css3 media 响应式布局的简单实例
2016/08/03 HTML / CSS
小学生新学期寄语
2014/01/19 职场文书
服务标语口号
2014/07/01 职场文书
工作失误检讨书(3篇)
2014/10/11 职场文书
死亡证明书样本说明
2014/10/18 职场文书
学生保证书格式
2015/02/27 职场文书
2015年中学校长工作总结
2015/05/19 职场文书
冲出亚马逊观后感
2015/06/03 职场文书
2019年健身俱乐部的创业计划书
2019/08/26 职场文书
Python中非常使用的6种基本变量的操作与技巧
2022/03/22 Python