在python中实现强制关闭线程的示例


Posted in Python onJanuary 22, 2019

如下所示:

import threading
import time
import inspect
import ctypes


def _async_raise(tid, exctype):
  """raises the exception, performs cleanup if needed"""
  tid = ctypes.c_long(tid)
  if not inspect.isclass(exctype):
   exctype = type(exctype)
  res = ctypes.pythonapi.PyThreadState_SetAsyncExc(tid, ctypes.py_object(exctype))
  if res == 0:
   raise ValueError("invalid thread id")
  elif res != 1:
   # """if it returns a number greater than one, you're in trouble, 
   # and you should call it again with exc=NULL to revert the effect""" 
   ctypes.pythonapi.PyThreadState_SetAsyncExc(tid, None)
   raise SystemError("PyThreadState_SetAsyncExc failed")


def stop_thread(thread):
  _async_raise(thread.ident, SystemExit)


class TestThread(threading.Thread):
  def run(self):
   print
   "begin"
   while True:
     time.sleep(0.1)
   print('end')


if __name__ == "__main__":
  t = TestThread()
  t.start()
  time.sleep(1)
  stop_thread(t)
  print('stoped')

以上这篇在python中实现强制关闭线程的示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
在python的类中动态添加属性与生成对象
Sep 17 Python
Django应用程序中如何发送电子邮件详解
Feb 04 Python
Python错误提示:[Errno 24] Too many open files的分析与解决
Feb 16 Python
Python入门_条件控制(详解)
May 16 Python
pyQt4实现俄罗斯方块游戏
Jun 26 Python
Python简单处理坐标排序问题示例
Jul 11 Python
解决Python3 控制台输出InsecureRequestWarning问题
Jul 15 Python
使用NumPy读取MNIST数据的实现代码示例
Nov 20 Python
pytorch查看通道数 维数 尺寸大小方式
May 26 Python
keras 指定程序在某块卡上训练实例
Jun 22 Python
python中altair可视化库实例用法
Jan 26 Python
python将图片转为矢量图的方法步骤
Mar 30 Python
Python实现简单石头剪刀布游戏
Jan 20 #Python
python石头剪刀布小游戏(三局两胜制)
Jan 20 #Python
python 对类的成员函数开启线程的方法
Jan 22 #Python
python实现石头剪刀布小游戏
Jan 20 #Python
对Python3之进程池与回调函数的实例详解
Jan 22 #Python
python多任务及返回值的处理方法
Jan 22 #Python
opencv实现静态手势识别 opencv实现剪刀石头布游戏
Jan 22 #Python
You might like
PHP下利用header()函数设置浏览器缓存的代码
2010/09/01 PHP
yii框架中的Url生产问题小结
2012/01/16 PHP
PHP独立Session数据库存储操作类分享
2014/06/11 PHP
php在apache环境下实现gzip配置方法
2015/04/02 PHP
yii2实现分页,带搜索的分页功能示例
2017/01/07 PHP
thinkPHP5.0框架整体架构总览【应用,模块,MVC,驱动,行为,命名空间等】
2017/03/25 PHP
PHP实现的多维数组排序算法分析
2018/02/10 PHP
jQuery对表单元素的取值和赋值操作代码
2011/05/19 Javascript
jQuery EasyUI API 中文文档 - Documentation 文档
2011/09/29 Javascript
20个最新的jQuery插件
2012/01/13 Javascript
JS特权方法定义作用以及与公有方法的区别
2013/03/18 Javascript
JS+CSS实现一个气泡提示框
2013/08/18 Javascript
控制台报错object is not a function的解决方法
2014/08/24 Javascript
JS遍历数组和对象的区别及递归遍历对象、数组、属性的方法详解
2016/06/14 Javascript
微信小程序实现倒计时60s获取验证码
2020/04/17 Javascript
原生js封装运动框架的示例讲解
2017/10/01 Javascript
微信小程序支付之c#后台实现方法
2017/10/19 Javascript
python正则表达式re模块详解
2014/06/25 Python
详解Python map函数及Python map()函数的用法
2017/11/16 Python
Python实现通过继承覆盖方法示例
2018/07/02 Python
Python面向对象实现一个对象调用另一个对象操作示例
2019/04/08 Python
Python中的asyncio代码详解
2019/06/10 Python
python双端队列原理、实现与使用方法分析
2019/11/27 Python
python使用turtle库绘制奥运五环
2020/02/24 Python
Tensorflow中的降维函数tf.reduce_*使用总结
2020/04/20 Python
Python基于数列实现购物车程序过程详解
2020/06/09 Python
彻底解决Python包下载慢问题
2020/11/15 Python
欧洲最大的品牌水上运动服装和设备在线零售商:Wuituit Outlet
2018/05/05 全球购物
英国最大的割草机购买网站:Just Lawnmowers
2019/11/02 全球购物
台湾屈臣氏网路商店:Watsons台湾
2020/12/29 全球购物
如何利用cmp命令比较文件
2016/04/11 面试题
项目资料员岗位职责
2013/12/10 职场文书
《唯一的听众》教学反思
2014/02/20 职场文书
热情服务标语
2014/10/07 职场文书
2014年车间主任工作总结
2014/12/10 职场文书
2016中考冲刺决心书
2015/09/22 职场文书