在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 相关文章推荐
Django URL传递参数的方法总结
Aug 28 Python
Python学习小技巧之列表项的拼接
May 20 Python
Python3实现简单可学习的手写体识别(实例讲解)
Oct 21 Python
快速了解Python开发中的cookie及简单代码示例
Jan 17 Python
Python实现的knn算法示例
Jun 14 Python
Python Web编程之WSGI协议简介
Jul 18 Python
Selenium定时刷新网页的实现代码
Oct 31 Python
对python中数据集划分函数StratifiedShuffleSplit的使用详解
Dec 11 Python
python3.6环境安装+pip环境配置教程图文详解
Jun 20 Python
python单例设计模式实现解析
Jan 07 Python
python 解决Fatal error in launcher:错误问题
May 21 Python
90行Python代码开发个人云盘应用
Apr 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计算两个日期时间差(返回年、月、日)
2014/06/19 PHP
php实现的支持断点续传的文件下载类
2014/09/23 PHP
Yii2 加载css、js 载静态资源的方法
2017/03/10 PHP
PHP进阶学习之命名空间基本用法分析
2019/06/18 PHP
Laravel5.1 框架表单验证操作实例详解
2020/01/07 PHP
PHP pthreads v3下worker和pool的使用方法示例
2020/02/21 PHP
某页码显示的helper 少量调整,另附js版
2010/09/12 Javascript
Node.js中创建和管理外部进程详解
2014/08/16 Javascript
JavaScript基础知识学习笔记
2014/12/02 Javascript
JavaScript检测实例属性, 原型属性
2015/02/04 Javascript
nodejs爬虫抓取数据之编码问题
2015/07/03 NodeJs
jQuery手机拨号界面特效代码分享
2015/08/27 Javascript
javascript中的 object 和 function小结
2016/08/14 Javascript
JavaScript职责链模式概述
2016/09/17 Javascript
使用bootstrap-paginator.js 分页来进行ajax 异步分页请求示例
2017/03/09 Javascript
Javascript实现一个简单的输入关键字添加标签效果实例
2017/06/01 Javascript
IntelliJ IDEA 安装vue开发插件的方法
2017/11/21 Javascript
Vue中控制v-for循环次数的实现方法
2018/09/26 Javascript
JavaScript学习教程之cookie与webstorage
2019/06/23 Javascript
el-table树形表格表单验证(列表生成序号)
2020/05/31 Javascript
vue点击按钮实现简单页面的切换
2020/09/08 Javascript
[01:14:34]DOTA2上海特级锦标赛C组资格赛#2 LGD VS Newbee第一局
2016/02/28 DOTA
Python实现的金山快盘的签到程序
2013/01/17 Python
Python如何判断数独是否合法
2016/09/08 Python
Python爬虫代理IP池实现方法
2017/01/05 Python
python sorted函数的小练习及解答
2019/09/18 Python
python单向链表的基本实现与使用方法【定义、遍历、添加、删除、查找等】
2019/10/24 Python
在django中实现choices字段获取对应字段值
2020/07/12 Python
Django配置跨域并开发测试接口
2020/11/04 Python
New Balance英国官方网站:始于1906年,百年慢跑品牌
2016/12/07 全球购物
常务副总经理岗位职责
2014/04/12 职场文书
工作说明书格式
2014/07/29 职场文书
基层党建工作汇报材料
2014/08/15 职场文书
铣工实训报告
2014/11/05 职场文书
2015年妇女工作总结
2015/05/14 职场文书
MySQL创建管理HASH分区
2022/04/13 MySQL