这是一种无需更改工作函数即可完成此操作的方法.我们的想法是将worker包装在另一个函数中,该函数将在后台线程中调用worker,然后等待超时秒的结果.如果超时到期,则会引发异常,这将突然终止正在执行的线程工作者:

import multiprocessing

from multiprocessing.dummy import Pool as ThreadPool

from functools import partial

def worker(x, y, z):

pass # Do whatever here

def collectMyResult(result):

print("Got result {}".format(result))

def abortable_worker(func, *args, **kwargs):

timeout = kwargs.get('timeout', None)

p = ThreadPool(1)

res = p.apply_async(func, args=args)

try:

out = res.get(timeout) # Wait timeout seconds for func to complete.

return out

except multiprocessing.TimeoutError:

print("Aborting due to timeout")

p.terminate()

raise

if __name__ == "__main__":

pool = multiprocessing.Pool()

featureClass = [[1000,k,1] for k in drange(start,end,step)] #list of arguments

for f in featureClass:

abortable_func = partial(abortable_worker, worker, timeout=3)

pool.apply_async(abortable_func, args=f,callback=collectMyResult)

pool.close()

pool.join()

任何超时的函数都会引发multiprocessing.TimeoutError.请注意,这意味着在发生超时时不会执行回调.如果这是不可接受的,只需更改abortable_worker的except块以返回一些内容而不是调用raise.

python 超时退出程序_python – 如何在超时后中止multiprocessing.Pool中的任务?相关推荐

  1. python 直接退出程序_python 退出程序 Python程序运行后直接退出

    python中exit(0)和exit(1)的用法和区别, exit(0):表示程序正常退出. exit(1):表示程序异常退出. 二.特点不同 exit(0):把exit用在main内的时候无论ma ...

  2. python给函数设置超时时间_Python设置函数调用超时

    http://blog.sina.com.cn/s/blog_63041bb80102uy5o.html 背景: 最近写的Python代码不知为何,总是执行到一半卡住不动,为了使程序能够继续运行,设置 ...

  3. pip 设置超时时间_Python pip使用超时问题解决方案

    引言 之前有位群友在群里发了个问题,说使用pip安装第三方包遇到"Read timeout".我相信很多时候,大家在使用pip都会遇到这个问题,所以,我想有必要写一遍文章来总结一下 ...

  4. python自动退出程序_python异常退出

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 异常是一个事件,该事件会在程序执行过程中发生,将影响程序的正常执行. 一般情况下 ...

  5. python 直接退出程序_python程序退出方式

    1.sys.exit() 执行该语句会直接退出程序,这也是经常使用的方法,也不需要考虑平台等因素的影响,一般是退出Python程序的首选方法. 该方法中包含一个参数status,默认为0,表示正常退出 ...

  6. python处理分组_Python在groupby分组后提取指定位置记录方法

    在进行数据分析.数据建模时,我们首先要做的就是对数据进行处理,提取我们需要的信息.下面为大家介绍一些groupby的用法,以便能够更加方便地进行数据处理. 我们往往在使用groupby进行信息提取时, ...

  7. python一闪_Python文件直接执行后一闪而过的2种解决方案

    通过前端时间的学习,我们现在已经学会了 1:安装Python软件 2:配置Python环境变量 3:新建一个python文件 4:在cmd模式下python安装目录下执行一个python文件 5:在c ...

  8. python下载电影_python实现去除下载电影和电视剧文件名中的多余

    本文实例讲述了python实现去除下载电影和电视剧文件名中的多余字符的方法,是一个非常实用的技巧,分享给大家供大家参考.具体如下: 有时候我们讨厌下载电影和电视剧文件名中的多余字符(如网址和广告字样) ...

  9. python异步爬虫_Python实现基于协程的异步爬虫

    Python实现基于协程的异步爬虫 一.课程介绍 1. 课程来源 本课程核心部分来自<500 lines or less>项目,作者是来自 MongoDB 的工程师 A. Jesse Ji ...

  10. python界面设置中文_Python Spyder 怎么操作才能打开用户设置的界面(如图),python spyder教程中文...

    python的那个spyder中可以输出汉字么 AddressList.getList() 函数直接 return, 相当于返回 None, 然后主函数里打印出来了. 要AddressList.get ...

最新文章

  1. Linux安装—IP设置
  2. 批处理dir 保存到变量中_批处理|看大神如何教您30秒搞定批量提取文件名!
  3. Kali Linux Web 渗透测试视频教程—第十一课-扫描、sql注入、上传绕过
  4. Cannot check for MySQL Daemon startup because of mysqladmin failure
  5. 获取数组中元素值为偶数的累加和与元素值为奇数的累加和,并计算他们之间的差值
  6. python项目画幅好画_python基础教程总结15——2 画幅好画
  7. 如何不用BPM配置时间
  8. Linux 如何创建进程函数与查看进程
  9. 回顾Gartner 报告:2010年至2017年那些最酷的存储初创公司去哪儿了
  10. rocketmq mysql_聊聊rocketmq-mysql的BinlogPositionManager
  11. [转载] Python中 hash去重
  12. 【项目篇-项目创新点怎么写?(两千字图文总结建议)】创新创业竞赛项目计划书、新苗国创(大创)申报书
  13. 免费视频压缩软件实现压缩视频不损画质的技巧
  14. Code For Better 谷歌开发者之声——Google Cloud谷歌云
  15. 景区门票预约系统_无预约,不出游!免费景区门票赶紧预约~
  16. 前端sku-spu详解
  17. Unirech-阿里云国际版云服务器ecs实例使用中的常见问题汇总
  18. 共享IP和独享IP是什么?有什么用?
  19. 导入MVVMLight出现错误 ViewModelLocator does not exist in the namespace clr-namespace:WpfApp1.ViewModel
  20. maven引用第三方jar包的解决方法

热门文章

  1. 游戏人物属性如何设计
  2. 第七章第二十三题(游戏:储物柜难题)(Game: locker problem)
  3. ROS-ubuntu-系统安装
  4. Laravel中使用dingo
  5. 又拍云存储:CDN架构探索
  6. 2013年第四届蓝桥杯C/C++程序设计本科B组决赛 农场阳光(编程大题)
  7. 语音交互的基本概念和设计实践
  8. SSRS 锁定标题栏
  9. AMD 3600+ X2 CPU配合昂达A69T主板超频教程
  10. MSP430F149 IO端口