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博客作者最爱大苹果的原创作品,请联系作者获取转载授权,否则将追究法律责任
条件控制语句
任何编程语言都有条件控制语句,下面我们学习下条件控制语句
流程图如上
逻辑也是比较简单
代码为
if condition_1: statement_block_1elif condition_2: statement_block_2else: statement_block_3
代码执行过程
我们将很多项目代码拆分开来
条件控制语句,经常使用。
- 赞
- 收藏
- 评论
- *举报
Original: https://blog.51cto.com/apple0/5553306
Author: 最爱大苹果
Title: 极客编程python入门-条件控制2/7
相关阅读2
Title: 办公自动化:几行代码将PDF文档转换为WORD文档(代码实战)!
看了四五个PDF文件对象相关的插件库,比如:pdfminer.six、PyPDF2、pikepdf、pdfplumber、PyMuPDF之类的有很多,最后发现pdf2docx比较简单,只需要几行代码便可以实现。本着使用最简单的方法来解决实际问题的至高境界,我们就使用它来演示。
首先,通过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()
【往期精彩】
● 办公自动化:轻松提取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使用小记