在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中的面向对象编程的概念
Apr 27 Python
Python文件去除注释的方法
May 25 Python
浅谈Python数据类型之间的转换
Jun 08 Python
python 删除大文件中的某一行(最有效率的方法)
Aug 19 Python
Python简单实现网页内容抓取功能示例
Jun 07 Python
浅谈python写入大量文件的问题
Nov 09 Python
Python设计模式之享元模式原理与用法实例分析
Jan 11 Python
python实现批量修改服务器密码的方法
Aug 13 Python
python如何使用Redis构建分布式锁
Jan 16 Python
python pandas dataframe 去重函数的具体使用
Jul 20 Python
Python数据可视化实现漏斗图过程图解
Jul 20 Python
总结python 三种常见的内存泄漏场景
Nov 20 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中将html中的br换行符转换为文本输入中的换行符
2013/03/26 PHP
joomla jce editor 解决上传中文名文件失败问题
2013/06/09 PHP
获取URL文件名后缀
2013/10/24 PHP
php导出word文档与excel电子表格的简单示例代码
2014/03/08 PHP
yii2中的rules 自定义验证规则详解
2016/04/19 PHP
基于 Swoole 的微信扫码登录功能实现代码
2018/01/15 PHP
PHP微信网页授权的配置文件操作分析
2019/05/29 PHP
PHP使用PDO创建MySQL数据库、表及插入多条数据操作示例
2019/05/30 PHP
Javascript 写的简单进度条控件
2008/01/22 Javascript
js禁止页面使用右键(简单示例代码)
2013/11/13 Javascript
Js与下拉列表处理问题解决
2014/02/13 Javascript
form.submit()不能提交表单的错误原因及解决方法
2014/10/13 Javascript
12306验证码破解思路分享
2015/03/25 Javascript
js鼠标点击图片切换效果代码分享
2015/08/26 Javascript
Javascript验证方法大全
2015/09/21 Javascript
JS动态日期时间的获取方法
2015/09/28 Javascript
JavaScript的代码编写格式规范指南
2015/12/07 Javascript
实例讲解jquery中mouseleave和mouseout的区别
2016/02/17 Javascript
BootStrap智能表单实战系列(七)验证的支持
2016/06/13 Javascript
js中遍历Map对象的方法
2016/07/27 Javascript
详解Windows下安装Nodejs步骤
2017/05/18 NodeJs
vue2.0实现移动端的输入框实时检索更新列表功能
2018/05/08 Javascript
详解vue axios二次封装
2018/07/22 Javascript
JS算法题之查找数字在数组中的索引位置
2019/05/15 Javascript
通过图带你深入了解vue的响应式原理
2019/06/21 Javascript
[07:09]2014DOTA2国际邀请赛-Newbee再次发威成功晋级决赛
2014/07/19 DOTA
Python中的filter()函数的用法
2015/04/27 Python
Django使用httpresponse返回用户头像实例代码
2018/01/26 Python
python执行CMD指令,并获取返回的方法
2018/12/19 Python
Python箱型图处理离群点的例子
2019/12/09 Python
Python字符串中删除特定字符的方法
2020/01/15 Python
python操作toml文件的示例代码
2020/11/27 Python
Nobody Denim官网:购买高级女士牛仔裤
2021/03/15 全球购物
困难补助申请报告
2015/05/19 职场文书
学生会招新宣传语
2015/07/13 职场文书
关于销售人员的年终工作总结要点
2019/08/15 职场文书