python3 模型日记
说明
作为一种 python 框架模型的记录吧,用于个人总结,不定时更新。
正文
1. 主进程退出后,子进程也跟着退出
之前遇到过一种情况,用 flet 写了一个页面,然后又同时开了一个 tcp server 的子线程,flet页面点击关闭后,
tcp server 却没有退出。在linux中按 Ctrl + c 可以强制结束,但是如果在 windows 中单独起一个 powershell 终端,
flet 页面退出后,powershell 终端就卡住了(实际上是 tcp server 未关闭),只能通过关闭终端的方式,这种情况非常影
响调试。于是想要找到一种方式,flet 界面退出后,tcp server 也要退出。threading.Thread 无法关闭子线程,但是
multiprocessing.Process 是可以的,于是有了这样一种模型:
#-*- coding:utf-8 -*-
from multiprocessing import Process
import time
def task1():
while True:
print(time.time())
time.sleep(1)
def main():
print("hello")
time.sleep(10)
print("main is finished, start exit")
if __name__ == "__main__":
task1_pcs = Process(target=task1)
task1_pcs.start()
main()
#task1_pcs.join()
task1_pcs.terminate()
这个模型可以在自定义主函数 main() 退出后,自动关闭之前启动的进程。套用在一些桌面界面软件上,可以增加用户体验。
分类:
python
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
2021-02-04 Win10 下安装使用easyocr图片识别工具