python3利用自定义异常来退出并关闭线程。方法:1、利用raise自定义异常;2、当触发函数stop_thread时调用自定义异常进行退出。

利用异常使线程退出代码如下: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)

停止线程stop_thread(myThread)

补充知识:python threading实现Thread的修改值,开始,运行,停止,并获得内部值

python3 停止线程_python3怎么关闭线程相关推荐

  1. java线程池shutdown_关闭线程池的正确姿势,shutdown(), shutdownNow()和awaitTermination() 该怎么用?...

    关闭线程池的正确姿势,shutdown(), shutdownNow()和awaitTermination() 该怎么用? ExecutorService 接口提供了三个方法用于手动关闭线程池,分别是 ...

  2. Python 线程启动和关闭

    Python 线程启动和关闭 线程启动和关闭的Demo 测试结果显示,发现至少3s才能停止线程 线程启动和关闭的Demo Python自带的线程函数,发现没有停止的功能,有些需要重载后使用,但是这里还 ...

  3. java如何关闭线程池_如何优雅的关闭Java线程池

    ⾯试中经常会问到,创建⼀个线程池需要哪些参数.线程池的工作原理,却很少会问到线程池如何安全关闭的. 也正是因为⼤家不是很关注这块,即便是⼯作三四年的⼈,也会有因为线程池关闭不合理,导致应用⽆法正常st ...

  4. 02java进阶03-异常、线程、同步、线程池、Lambda表达式、File类、递归

    目录 一.异常 二.异常的处理 三.自定义异常 四.多线程 五.线程.同步 5.1.线程 5.2同步 5.3线程安全 5.4线程状态 六.等待唤醒机制 6.1 线程间通信 6.2 等待唤醒机制 6.3 ...

  5. Java多线程系列--【JUC线程池 02】- 线程池原理(一)

    参考:http://www.cnblogs.com/skywang12345/p/java_threads_category.html 概要 在前面一章"Java多线程系列--"J ...

  6. Java基础加强重温_08:线程不安全、线程同步、线程状态、线程状态切换、线程池(Executors类、newFixedThreadPool)、死锁、Lambda表达式、Stream

    摘要 Java基础加强重温_08: 线程安全(线程安全概念.线程不安全案例). 线程同步(同步代码块.同步方法.Lock锁,锁对象). 线程状态(new新建.Runnable可运行.Blocked锁阻 ...

  7. python关闭线程daemon_python中threading开启关闭线程操作

    在python中启动和关闭线程: 首先导入threading import threading 然后定义一个方法 def serial_read(): ... ... 然后定义线程,target指向要 ...

  8. 高并发编程-Thread_正确关闭线程的三种方式

    文章目录 概述 stop() Deprecated 方式一 设置开关 方式二 调用interrupt API 方式三 暴力结束线程-> Daemon Thread + interrupt API ...

  9. [转]Java 关闭线程的安全方法

    http://www.blogjava.net/Green-nut/articles/335149.html Java 之前有个api函数可以直接关闭线程, stop(), 后来, 取消了. 其替代的 ...

最新文章

  1. 18 款顶级代码生成器平台!
  2. socket-accept
  3. spring boot + vue + element-ui全栈开发入门——基于Electron桌面应用开发
  4. DayDayUp:教你一招如何在道客巴巴免费下载自己被侵权的文章
  5. python使用近似公式计算e_python如何算自然底数e(方法二)
  6. linux 内存一直在增加,linux – 缓存内存和共享内存总和超过总内...
  7. mysql集群 clu_MySQL高可用之PXC简介
  8. java filter注入_如何在Java Filter 中注入 Service
  9. java序列化层数_java序列化详解
  10. 【BZOJ】1001: [BeiJing2006]狼抓兔子 Dinic算法求解平面图对偶图-最小割
  11. Matlab plot3显示成平面图像
  12. Android按键事件处理流程 -- KeyEvent
  13. Flink中水位线Watermark
  14. 联想关闭计算机,联想电脑关机后自动重启怎么回事
  15. 服务器ie浏览器总是未响应怎么办,IE8浏览器总是无响应或卡死崩溃怎么办
  16. 自动驾驶技术越来越火,浅谈一些对百度Apollo开放平台8.0的看法和认知
  17. java 对象存储在哪里_Java对象存储位置
  18. 从软件测试培训班出来后找工作的这段经历,教会了我这五件事...
  19. BCDEDIT - 启动配置数据存储编辑器
  20. 怎么样把聊天记录彻底删除?

热门文章

  1. Laravel 上传图片及多张图片到七牛云
  2. [开发笔记]-DataGridView控件中自定义控件的使用
  3. Ionic APP 热更新
  4. 教你编写Node.js中间件,实现服务端缓存
  5. Linq使用Group By
  6. oracle删除一个用户
  7. 07_js走路小游戏
  8. 快速开发平台网格部件合并单元格。
  9. SQL批量更新DateTime中的年、月、日
  10. [Design]设计模式-- 为什么要学习设计原则/模式