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写的一个文本编辑器
Jan 23 Python
python函数装饰器用法实例详解
Jun 04 Python
Pyhton中单行和多行注释的使用方法及规范
Oct 11 Python
Python使用pyh生成HTML文档的方法示例
Mar 10 Python
python实现人脸识别经典算法(一) 特征脸法
Mar 13 Python
Python lambda函数基本用法实例分析
Mar 16 Python
Django框架实现逆向解析url的方法
Jul 04 Python
在PYQT5中QscrollArea(滚动条)的使用方法
Jun 14 Python
django 类视图的使用方法详解
Jul 24 Python
Python运行提示缺少模块问题解决方案
Apr 02 Python
Python之多进程与多线程的使用
Feb 23 Python
python实现图片九宫格分割的示例
Apr 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
php-accelerator网站加速PHP缓冲的方法
2008/07/30 PHP
PHP 创建文件(文件夹)以及目录操作代码
2010/03/04 PHP
PHP扩展开发入门教程
2015/02/26 PHP
浅谈php错误提示及查错方法
2015/07/14 PHP
php使用PDO事务配合表格读取大量数据插入操作实现方法
2017/02/16 PHP
Laravel修改验证提示信息为中文的示例
2019/10/23 PHP
javascript网页关键字高亮代码
2008/07/30 Javascript
10个新的最有前途的JavaScript框架
2009/03/12 Javascript
用cssText批量修改样式
2009/08/29 Javascript
js调用打印机打印网页字体总是缩小一号的解决方法
2014/01/24 Javascript
查找页面中所有类为test的结点的方法
2014/03/28 Javascript
javaScript中两个等于号和三个等于号之间的区别介绍
2014/06/27 Javascript
PHP PDO操作总结
2014/11/17 Javascript
NodeJS学习笔记之FS文件模块
2015/01/13 NodeJs
基于jQuery实现搜索关键字自动匹配功能
2020/03/26 Javascript
JavaScript代码实现左右上下自动晃动自动移动
2016/04/08 Javascript
把普通对象转换成json格式的对象的简单实例
2016/07/04 Javascript
D3.js实现饼状图的方法详解
2016/09/21 Javascript
JavaScript实现256色转灰度图
2017/02/22 Javascript
初识 Vue.js 中的 *.Vue文件
2017/11/22 Javascript
Vue加载json文件的方法简单示例
2019/01/28 Javascript
JavaScript实现留言板案例
2020/03/17 Javascript
Python中返回字典键的值的values()方法使用
2015/05/22 Python
在Python的一段程序中如何使用多次事件循环详解
2017/09/07 Python
python利用ffmpeg进行录制屏幕的方法
2019/01/10 Python
python+opencv像素的加减和加权操作的实现
2019/07/14 Python
使用sklearn对多分类的每个类别进行指标评价操作
2020/06/11 Python
日本最大的眼镜购物网站:Oh My Glasses
2016/11/13 全球购物
英国儿童鞋和靴子:Start-Rite
2019/05/06 全球购物
请说出你所知道的线程同步的方法
2013/04/19 面试题
《少年王勃》教学反思
2014/04/27 职场文书
机关党员进社区活动总结
2014/07/05 职场文书
咖啡厅商业计划书
2014/09/15 职场文书
2015教师个人年度工作总结
2015/10/23 职场文书
告诉你创业计划书的8个实用技巧
2019/07/12 职场文书
Angular CLI发布路径的配置项浅析
2021/03/29 Javascript