python如何关闭线程

Python44

python如何关闭线程

原创

ch3nnn博主文章分类:Python ©著作权

文章标签 开发语言 python 停止线程 ide 文章分类 Python 后端开发

©著作权归作者所有:来自51CTO博客作者ch3nnn的原创作品,请联系作者获取转载授权,否则将追究法律责任

python关闭线程的方法:首先导入threading,定义一个方法;然后定义线程,target指向要执行的方法,启动它;最后停止线程,代码为【stop_thread(myThread)】。

python关闭线程的方法:

一、启动线程

首先导入threading

import threading

然后定义一个方法

def serial_read():......

然后定义线程,target指向要执行的方法

myThread = threading.Thread(target=serial_read)

启动它

myThread.start()

二、停止线程

不多说了直接上代码

import inspectimport ctypesdef _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 枚举类 自定义状态

Original: https://blog.51cto.com/u_15722381/5483108
Author: ch3nnn
Title: python如何关闭线程



相关阅读1

Title: 极客编程python入门-条件控制2/7

极客编程python入门-条件控制2/7

精选原创

最爱大苹果博主文章分类:极客编程python学习 ©著作权

文章标签 条件控制语句 python学习 文章分类 Python 编程语言 yyds干货盘点

©著作权归作者所有:来自51CTO博客作者最爱大苹果的原创作品,请联系作者获取转载授权,否则将追究法律责任

条件控制语句

任何编程语言都有条件控制语句,下面我们学习下条件控制语句

python如何关闭线程

流程图如上

逻辑也是比较简单

python如何关闭线程

代码为

if condition_1:    statement_block_1elif condition_2:    statement_block_2else:    statement_block_3

代码执行过程

python如何关闭线程

我们将很多项目代码拆分开来

条件控制语句,经常使用。

  • 收藏
  • 评论
  • *举报

上一篇:web安全入门-漏洞扫描原理与报告

下一篇:极客编程python入门-流程控制3/7

Original: https://blog.51cto.com/apple0/5553306
Author: 最爱大苹果
Title: 极客编程python入门-条件控制2/7

相关阅读2

Title: 办公自动化:几行代码将PDF文档转换为WORD文档(代码实战)!

看了四五个PDF文件对象相关的插件库,比如:pdfminer.six、PyPDF2、pikepdf、pdfplumber、PyMuPDF之类的有很多,最后发现pdf2docx比较简单,只需要几行代码便可以实现。本着使用最简单的方法来解决实际问题的至高境界,我们就使用它来演示。

python如何关闭线程

首先,通过pip的方式安装再导入模块。

pip install pdf2docx  # 安装 pdf2docx

# 导入文件转换对象Converter
from pdf2docx import Converter

分别定义好word与pdf文件的存储路径,再将已经存在pdf文件转换成python的插件对象。

# 定义PDF文件路径
pdf_file_path = 'Python 集中营.pdf'

# 定义WORD文件路径
docx_file_path = 'Python 集中营.docx'

# 初始化PDF转换对象
converter = Converter(pdf_file_path)

将初始化的pdf对象转换成word文档存储。

'''
实现PDF转换成WORD
convert(path, start=0, end=None)
path: word文档路径
start: 开始页数,0 从第一页开始
end: 结束页数,None 无限制
pages: 指定哪几页需要转换
'''
# 连续页面进行转换
converter.convert(docx_file_path, start=0, end=None)

# 指定页面进行转换
# converter.convert(docx_file_path, pages=[0,2,4,6,8,10])

# 关闭转换对象
converter.close()

python如何关闭线程

【往期精彩】

● 办公自动化:轻松提取PDF页面数据,并生成Excel文件(代码实战)!

● sched 模块中巨好用的轻量级定时任务神器scheduler!

● 不用再使用命令行打包成exe,有人写出了UI应用,可视化UI界面对python程序进行打包的方法!

● 发现一个秘密:既python3.6之后字典竟然变成了有序集合,我再次验证了一下!

● 大厂校招白菜打包价40W+,可高兴坏了房东大妈...

● 这么多的内置函数能记住吗?对python的68个内置函数分类总结!

● 必须要会的文件操作对象File,python文件读写操作利器!

● 你不知道的CS模式的进程管理工具,状态监测、项目启停一目了然!

● 如何将一个python应用以docker镜像的方式来运行?

● python-celery专注于实现分布式异步任务处理、任务调度的插件!

● python远程服务操作工具:fabric,远程命令、本地命令、服务器操作利器!

● 办公自动化:Python-win32com自动将word文档转换成pdf格式!

● Git LFS 3.0.0 发布,对大文件进行版本控制的 Git 扩展

● pandas数据统计插件的连接函数concat()妙用,灵活处理数据对象!

Original: https://www.cnblogs.com/lwsbc/p/15510763.html
Author: Python集中营
Title: 办公自动化:几行代码将PDF文档转换为WORD文档(代码实战)!

相关阅读3

Title: supervisor使用小记

supervisor是一个利用python开发的进程管理工具,可以控制其所管理的进程, 包括但不限于其所管理程序异常退出时的重启

利用linux自带的包管理命令或者python的包管理命令即可安装

Debian

apt-get install supervisor

Cent

yum install supervisor

Arch

pacman -S supervisor

pip

pip install supervisor

配置文件

不同的安装方式配置文件所在的目录可能有所差异,甚至没有生成默认的配置文件,以arch为例配置文件在/etc目录下,路径为 /etc/supervisord.conf。一般来说/etc目录就是存放各种配置文件的。如果配置文件不存在,或者想修改配置文件目录,使用下面命令:

echo_supervisord_conf > /路径名/supervisord.conf

重点放在文件的最后两行

[En]

Focus on the last two lines of the file

[include]
/etc/supervisor.d/*.ini

这里写的是所管理的进程的配置文件所在路径以及文件格式,可以看到默认的是 .ini文件也可以修改为 .conf文件

启动supervisord

第一次启动命令

supervisord -c /etc/supervisord.conf

设置开机自启

systemctl enable supervisord

子进程配置文件

正如上面所介绍,supervisor的子进程配置文件目录已经在supervisord.conf文件中写好,或者你也可以修改为自定义的目录,

supervisord管理的进程可以有多个,多个进程的配置文件可以写在多个文件中,也可以写在一个配置文件中,通常是一个项目相关的进程写在一个文件中,

配置文件模版(.conf文件):

[program:blog]                           ;项目名
directory=/opt/bin                       ;脚本目录
command=/usr/bin/python /opt/bin/test.py ;脚本执行命令
autostart=true                         ;supervisor启动的时候是否随着同时启动,默认True
autorestart=false                      ;当程序exit的时候,这个program不会自动重启,默认unexpected,设置子进程挂掉后自动重启的情况,有三个选项,false,unexpected和true。如果为false的时候,无论什么情况下,都不会被重新启动,如果为unexpected,只有当进程的退出码不在下面的exitcodes里面定义的

startsecs=1                            ;这个选项是子进程启动多少秒之后,此时状态如果是running,则我们认为启动成功了。默认值为1

user = test                            ;脚本运行的用户身份
stderr_logfile=/tmp/blog_stderr.log    ;标准错误日志输出
stdout_logfile=/tmp/blog_stdout.log    ;标准输出日志输出
redirect_stderr = true                 ;把stderr重定向到stdout,默认 false
stdout_logfile_maxbytes = 20MB         ;stdout日志文件大小,默认 50MB
stdout_logfile_backups = 20            ;stdout日志文件备份数

supervisorctl命令

supervisorctl status        //查看所有进程的状态
supervisorctl stop es       //停止es
supervisorctl start es      //启动es
supervisorctl restart       //重启es
supervisorctl update        //配置文件修改后使用该命令加载新的配置
supervisorctl reload        //重新启动配置中的所有程序

注:把 es换成 all可以管理配置中的所有进程。直接输入 supervisorctl进入supervisorctl的shell交互界面,此时上面的命令不带supervisorctl可直接使用。

Original: https://www.cnblogs.com/kainhuck/p/14553926.html
Author: KainHuck
Title: supervisor使用小记