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查找相似单词的方法
Mar 05 Python
Python读写docx文件的方法
May 08 Python
Python动态导入模块的方法实例分析
Jun 28 Python
Python函数装饰器实现方法详解
Dec 22 Python
Python实现根据日期获取当天凌晨时间戳的方法示例
Apr 09 Python
python实现小球弹跳效果
May 10 Python
简单了解Python生成器是什么
Jul 02 Python
Pytorch 计算误判率,计算准确率,计算召回率的例子
Jan 18 Python
Python+appium框架原生代码实现App自动化测试详解
Mar 06 Python
解决Python spyder显示不全df列和行的问题
Apr 20 Python
python四个坐标点对图片区域最小外接矩形进行裁剪
Jun 04 Python
基于Python实现nc批量转tif格式
Aug 14 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
PHP4与PHP5的时间格式问题
2008/02/17 PHP
PHP三元运算符的结合性介绍
2012/01/10 PHP
zf框架的数据库追踪器使用示例
2014/03/13 PHP
codeigniter中view通过循环显示数组数据的方法
2015/03/20 PHP
深入理解PHP内核(一)
2015/11/10 PHP
thinkPHP5框架接口写法简单示例
2019/08/05 PHP
JQuery读取XML文件数据并显示的实现代码
2009/12/16 Javascript
jquery实现固定顶部导航效果(仿蘑菇街)
2013/03/21 Javascript
jquery修改属性值实例代码(设置属性值)
2014/01/06 Javascript
js获取当前地址 JS获取当前URL的示例代码
2014/02/26 Javascript
vue日期组件 支持vue1.0和2.0
2017/01/09 Javascript
jsonp跨域请求实现示例
2017/03/13 Javascript
javascript实现动态显示颜色块的报表效果
2017/04/10 Javascript
javascript简写常用的12个技巧(可以大大减少你的js代码量)
2020/03/28 Javascript
JavaScript面向对象精要(上部)
2017/09/12 Javascript
vue和iview实现Scroll 数据无限滚动功能
2019/10/31 Javascript
python 随机数生成的代码的详细分析
2011/05/15 Python
python图书管理系统
2020/04/05 Python
Python使用pyautogui模块实现自动化鼠标和键盘操作示例
2018/09/04 Python
让代码变得更易维护的7个Python库
2018/10/09 Python
python频繁写入文件时提速的方法
2019/06/26 Python
pandas 中对特征进行硬编码和onehot编码的实现
2019/12/20 Python
Python实现进度条和时间预估的示例代码
2020/06/02 Python
Python 使用双重循环打印图形菱形操作
2020/08/09 Python
Python2与Python3关于字符串编码处理的差别总结
2020/09/07 Python
css3实现书本翻页效果的示例代码
2021/03/08 HTML / CSS
js实现移动端H5页面手指滑动刻度尺功能
2017/11/16 HTML / CSS
英国优质鞋类专家:Robinson’s Shoes
2017/12/08 全球购物
JD Sports西班牙:英国领先的运动服装公司
2020/01/06 全球购物
全球异乡人的跨境社交电商平台:Kouhigh口嗨网
2020/07/24 全球购物
"火柴棍式"程序员面试题
2014/03/16 面试题
医学专业毕业生推荐信
2014/07/12 职场文书
公司授权委托书范文
2014/08/02 职场文书
2015年安全生产月工作总结
2015/07/27 职场文书
pytorch model.cuda()花费时间很长的解决
2021/06/01 Python
java Nio使用NioSocket客户端与服务端交互实现方式
2021/06/15 Java/Android