在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统计文件行数示例分享
Feb 21 Python
python实现的生成随机迷宫算法核心代码分享(含游戏完整代码)
Jul 11 Python
python通过字典dict判断指定键值是否存在的方法
Mar 21 Python
浅谈配置OpenCV3 + Python3的简易方法(macOS)
Apr 02 Python
Python爬取个人微信朋友信息操作示例
Aug 03 Python
python实现归并排序算法
Nov 22 Python
python利用Tesseract识别验证码的方法示例
Jan 21 Python
itchat-python搭建微信机器人(附示例)
Jun 11 Python
Ubuntu18.04下python版本完美切换的解决方法
Jun 14 Python
python开发之anaconda以及win7下安装gensim的方法
Jul 05 Python
利用Tensorflow的队列多线程读取数据方式
Feb 05 Python
基于python实现计算两组数据P值
Jul 10 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
JpGraph php柱状图使用介绍
2011/08/23 PHP
解析PHP缓存函数的使用说明
2013/05/10 PHP
PHP与javascript实现变量交互的示例代码
2013/07/23 PHP
Yii2中使用asset压缩js,css文件的方法
2016/11/24 PHP
用javascript实现画板的代码
2007/09/05 Javascript
IE6与IE7中,innerHTML获取param的区别
2009/03/15 Javascript
js调用浏览器打印模块实现点击按钮触发自定义函数
2014/03/21 Javascript
解决js下referer兼容各大浏览器的方法
2014/11/03 Javascript
jQuery中index()方法用法实例
2014/12/27 Javascript
JavaScript实现SHA-1加密算法的方法
2015/03/11 Javascript
深入理解JavaScript中为什么string可以拥有方法
2016/05/24 Javascript
Bootstrap Paginator分页插件与ajax相结合实现动态无刷新分页效果
2016/05/27 Javascript
网页瀑布流布局jQuery实现代码
2016/10/21 Javascript
node.js中debug模块的简单介绍与使用
2017/04/25 Javascript
vue.js删除动态绑定的radio的指定项
2017/06/02 Javascript
Vue单页及多页应用全局配置404页面实践记录
2018/05/22 Javascript
vue 录制视频并压缩视频文件的方法
2018/07/27 Javascript
小程序实现留言板
2018/11/02 Javascript
VSCode Vue开发推荐插件和VSCode快捷键(小结)
2020/08/08 Javascript
vue项目打包为APP,静态资源正常显示,但API请求不到数据的操作
2020/09/12 Javascript
[42:04]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#3Secret VS OG第一局
2016/03/03 DOTA
Python获取昨天、今天、明天开始、结束时间戳的方法
2018/06/01 Python
python使用epoll实现服务端的方法
2018/10/16 Python
python+mysql实现个人论文管理系统
2019/10/25 Python
pytorch方法测试——激活函数(ReLU)详解
2020/01/15 Python
python 实现一个简单的线性回归案例
2020/12/17 Python
罗兰·穆雷官网:Roland Mouret
2018/09/28 全球购物
班长岗位职责
2013/11/10 职场文书
合伙经营协议书范本
2014/04/18 职场文书
大学竞选班长演讲稿
2014/04/24 职场文书
档案信息化建设方案
2014/05/16 职场文书
大学生应聘导游自荐信
2014/06/02 职场文书
2014教师研修学习体会
2014/07/08 职场文书
出租车拒载检讨书
2015/01/28 职场文书
2015年爱国卫生月活动总结
2015/03/26 职场文书
2016年优秀教师先进事迹材料
2016/02/26 职场文书