在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实现提取百度搜索结果的方法
May 19 Python
Python实现基本线性数据结构
Aug 22 Python
Python将多个excel表格合并为一个表格
Feb 22 Python
python中ASCII码字符与int之间的转换方法
Jul 09 Python
Python常见MongoDB数据库操作实例总结
Jul 24 Python
python对csv文件追加写入列的方法
Aug 01 Python
关于Python内存分配时的小秘密分享
Sep 05 Python
python智联招聘爬虫并导入到excel代码实例
Sep 09 Python
使用Fabric自动化部署Django项目的实现
Sep 27 Python
python实现画出e指数函数的图像
Nov 21 Python
Python爬虫库BeautifulSoup获取对象(标签)名,属性,内容,注释
Jan 25 Python
python使用正则表达式匹配txt特定字符串(有换行)
Dec 09 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
apache配置虚拟主机的方法详解
2013/06/17 PHP
php 判断服务器操作系统的类型
2014/02/17 PHP
几行代码轻松实现PHP文件打包下载zip
2017/03/01 PHP
关于laravel-admin ueditor 集成并解决刷新的问题
2019/10/21 PHP
PHP数组访问常用方法解析
2020/09/05 PHP
firefox下jQuery UI Autocomplete 1.8.*中文输入修正方法
2012/09/19 Javascript
特殊情况下如何获取span里面的值
2014/05/20 Javascript
jQuery的Ajax用户认证和注册技术实例教程(附demo源码)
2015/12/08 Javascript
jQuery中的Deferred和promise 的区别
2016/04/03 Javascript
BootStrap的alert提示框的关闭后再显示怎么解决
2016/05/17 Javascript
详解js的事件代理(委托)
2016/12/22 Javascript
AngularJS的ng-repeat指令与scope继承关系实例详解
2017/01/21 Javascript
jQuery使用方法
2017/02/04 Javascript
Vue实现todolist删除功能
2018/06/26 Javascript
vue修改对象的属性值后页面不重新渲染的实例
2018/08/09 Javascript
解决vue中使用Axios调用接口时出现的ie数据处理问题
2018/08/13 Javascript
原生JS实现DOM加载完成马上执行JS代码的方法
2018/09/07 Javascript
vue.js+elementUI实现点击左右箭头切换头像功能(类似轮播图效果)
2019/09/05 Javascript
Python操作配置文件ini的三种方法讲解
2019/02/22 Python
set在python里的含义和用法
2019/06/24 Python
python操作gitlab API过程解析
2019/12/27 Python
Python3如何使用tabulate打印数据
2020/09/25 Python
python实现测试工具(二)——简单的ui测试工具
2020/10/19 Python
2021年值得向Python开发者推荐的VS Code扩展插件
2021/01/25 Python
基于canvas的骨骼动画的示例代码
2018/06/12 HTML / CSS
德国BA保镖药房韩文网:kr.ba.de
2017/09/04 全球购物
新西兰珠宝品牌:Michael Hill
2017/09/16 全球购物
介绍一下write命令
2014/08/10 面试题
团员个人的自我评价
2013/12/02 职场文书
生日派对邀请函
2014/01/13 职场文书
擅自离岗检讨书
2014/02/11 职场文书
网管求职信
2014/03/03 职场文书
建筑技术负责人岗位职责
2015/04/13 职场文书
幼儿园安全工作总结2015
2015/04/20 职场文书
php去除数组中为0的元素的实例分析
2021/11/17 PHP
tomcat的catalina.out日志按自定义时间格式进行分割的操作方法
2022/04/02 Servers