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 02 Python
Python import用法以及与from...import的区别
May 28 Python
详谈Python基础之内置函数和递归
Jun 21 Python
python记录程序运行时间的三种方法
Jul 14 Python
Anaconda多环境多版本python配置操作方法
Sep 12 Python
Python爬取数据并写入MySQL数据库的实例
Jun 21 Python
python 接口实现 供第三方调用的例子
Aug 13 Python
wxPython色环电阻计算器
Nov 18 Python
详解torch.Tensor的4种乘法
Sep 03 Python
详解Selenium-webdriver绕开反爬虫机制的4种方法
Oct 28 Python
python中K-means算法基础知识点
Jan 25 Python
Python调用SMTP服务自动发送Email的实现步骤
Feb 07 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 array_multisort() 函数的深入解析
2013/06/20 PHP
phplist及phpmailer(组合使用)通过gmail发送邮件的配置方法
2016/03/30 PHP
PHP Smarty模版简单使用方法
2016/03/30 PHP
javascript(jquery)利用函数修改全局变量的代码
2009/11/02 Javascript
JS遮罩层效果 兼容ie firefox jQuery遮罩层
2010/07/26 Javascript
分页栏的web标准实现
2011/11/01 Javascript
Jquery选择子控件"大于号"和" "区别介绍及使用示例
2013/06/25 Javascript
js全选实现和判断是否有复选框选中的方法
2015/02/17 Javascript
跟我学习javascript的闭包
2015/11/16 Javascript
JS中使用DOM来控制HTML元素
2016/07/31 Javascript
JavaScript数组去重由慢到快由繁到简(优化篇)
2016/08/26 Javascript
js防阻塞加载的实现方法
2016/09/09 Javascript
微信js-sdk界面操作接口用法示例
2016/10/12 Javascript
JS函数修改html的元素内容,及修改属性内容的方法
2016/10/28 Javascript
使用nodejs爬取前程无忧前端技能排行
2017/05/06 NodeJs
Angular简单验证功能示例
2017/12/22 Javascript
Vue中使用better-scroll实现轮播图组件
2020/03/07 Javascript
[59:15]EG vs LGD 2018国际邀请赛淘汰赛BO3 第一场 8.26
2018/08/29 DOTA
python字符串替换的2种方法
2014/11/30 Python
Python编写百度贴吧的简单爬虫
2015/04/02 Python
Python写入CSV文件的方法
2015/07/08 Python
详细分析python3的reduce函数
2017/12/05 Python
django框架使用orm实现批量更新数据的方法
2019/06/21 Python
一篇文章弄懂Python中所有数组数据类型
2019/06/23 Python
Python 进程之间共享数据(全局变量)的方法
2019/07/16 Python
Python中的xlrd模块使用原理解析
2020/05/21 Python
CSS3中新增的对文本和字体的设置
2020/02/03 HTML / CSS
html5 touch事件实现页面上下滑动效果【附代码】
2016/03/10 HTML / CSS
利用html5 canvas破解简单验证码及getImageData接口应用
2013/01/25 HTML / CSS
移动端HTML5 input常见问题(小结)
2020/09/28 HTML / CSS
新加坡一家在线男士皮具品牌:Faire Leather Co.
2019/12/01 全球购物
大学生志愿者感言
2014/01/15 职场文书
行政办公室岗位职责
2014/03/18 职场文书
银行招聘自荐信
2015/03/06 职场文书
无保留意见审计报告
2015/06/05 职场文书
2015上半年个人工作总结
2015/07/27 职场文书