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中使用scapy模拟数据包实现arp攻击、dns放大攻击例子
Oct 23 Python
Python易忽视知识点小结
May 25 Python
Python中的深拷贝和浅拷贝详解
Jun 03 Python
深入解析Python中的list列表及其切片和迭代操作
Mar 13 Python
Python实现读取txt文件并画三维图简单代码示例
Dec 09 Python
Python找出最小的K个数实例代码
Jan 04 Python
浅析python中numpy包中的argsort函数的使用
Aug 30 Python
[原创]Python入门教程5. 字典基本操作【定义、运算、常用函数】
Nov 01 Python
Python3视频转字符动画的实例代码
Aug 29 Python
Python利用socket模块开发简单的端口扫描工具的实现
Jan 27 Python
python实现三次密码验证的示例
Apr 29 Python
详解非极大值抑制算法之Python实现
Jun 28 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
如何做到多笔资料的同步
2006/10/09 PHP
discuz的php防止sql注入函数
2011/01/17 PHP
浅谈php中include文件变量作用域
2015/06/18 PHP
javascript 继承实现方法
2009/08/26 Javascript
JS添加删除一组文本框并对输入信息加以验证判断其正确性
2013/04/11 Javascript
HTML,CSS,JavaScript速查表推荐
2014/12/02 Javascript
果断收藏9个Javascript代码高亮脚本
2016/01/06 Javascript
在JSP中如何实现MD5加密的方法
2016/11/02 Javascript
JavaScript实现点击按钮复制指定区域文本(推荐)
2016/11/25 Javascript
JavaScript用JSONP跨域请求数据实例详解
2017/01/06 Javascript
Angular2 PrimeNG分页模块学习
2017/01/14 Javascript
js中el表达式的使用和非空判断方法
2018/03/28 Javascript
JavaScript事件对象event用法分析
2018/07/27 Javascript
解决Vue中引入swiper,在数据渲染的时候,发生不滑动的问题
2018/09/27 Javascript
微信小程序实现签到功能
2018/10/31 Javascript
小试SVG之新手小白入门教程
2019/01/08 Javascript
详解VUE前端按钮权限控制
2019/04/26 Javascript
Nodejs + Websocket 指定发送及群聊的实现
2020/01/09 NodeJs
Vue2.0 $set()的正确使用详解
2020/07/28 Javascript
[01:25]DOTA2超级联赛专访iG 将调整状态找回自己
2013/06/05 DOTA
Python内置的字符串处理函数整理
2013/01/29 Python
200行自定义python异步非阻塞Web框架
2017/03/15 Python
python 筛选数据集中列中value长度大于20的数据集方法
2018/06/14 Python
python global和nonlocal用法解析
2020/02/03 Python
浅谈Python里面None True False之间的区别
2020/07/09 Python
Python类的继承super相关原理解析
2020/10/22 Python
巴西网上药房:onofre
2016/11/21 全球购物
美国婚戒购物网站:Anjays Designs
2017/06/28 全球购物
美国翻新电子产品商店:The Store
2019/10/08 全球购物
毕业生个人求职自荐信
2014/02/26 职场文书
航海技术专业毕业生求职信
2014/04/06 职场文书
论文诚信承诺书
2014/05/23 职场文书
一年级语文下册复习计划
2015/01/17 职场文书
村官个人总结范文
2015/03/03 职场文书
护士自荐信怎么写
2015/03/06 职场文书
python实现批量移动文件
2021/04/05 Python