说明


作为一种 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() 退出后,自动关闭之前启动的进程。套用在一些桌面界面软件上,可以增加用户体验。

python3 模型日记的更多相关文章

  1. Python3+Selenium2完整的自动化测试实现之旅(五):自动化测试框架、Python面向对象以及POM设计模型简介

    前言 之前的系列博客,陆续学习整理了自动化测试环境的搭建.IE和Chrome浏览器驱动的配置.selenium-webdriver模块封装的元素定位以及控制浏览器.处理警示框.鼠标键盘等方法的使用,这 ...

  2. 修正剑桥模型预测-用python3.4

    下面是预测结果: #!/usr/bin/env python # -*- coding:utf-8 -*- # __author__ = "blzhu" ""& ...

  3. python3.6以上 asyncio模块的异步编程模型 async await语法

    这是python3.6以上版本的用法,本例是python3.7.2编写使用asyncio模块的异步编程模型,生产这消费者,异步生产,用sleep来代替IO等待使用async和await语法来进行描述a ...

  4. 基于Python3.7和opencv的人脸识别(含数据收集,模型训练)

    前言 第一次写博客,有点紧张和兴奋.废话不多说,直接进入正题.如果你渴望使你的电脑能够进行人脸识别:如果你不想了解什么c++.底层算法:如果你也不想买什么树莓派,安装什么几个G的opencv:如果你和 ...

  5. 在docker容器中python3.5环境下使用DIGITS训练caffe模型

    ********* 此处使用的基础镜像为 nvcr.io/nvidia/digits:18.06,镜像大小为6.04GB,可从nvidia官方pull此镜像: 容器配置: CUDA:9.0 CUDNN ...

  6. Python3学习之路~9.4 队列、生产者消费者模型

    一 队列queue 当必须在多个线程之间安全地交换信息时,队列在线程编程中特别有用. 队列的作用:1.解耦,使程序直接实现松耦合 2.提高处理效率 列表与队列都是有顺序的,但是他们之间有一个很大的区别 ...

  7. Django学习日记03_模型_Fields

    创建模型 模型对应工程中的应用,一个工程可能包含很多的应用,通过命令 python manage.py startapp myapp 创建一个叫myapp的应用,django会帮助生成以下目录: po ...

  8. CentOS7攻克日记(三) —— 安装Python3.6

    我是在EVERNOTE上面写的,本来格式是有代码段的,结果复制上来就没有了,所以会有一点乱,我就不调整了   我主要安装的是python环境,这一篇主要解决一下python的问题.在这里给个建议,安装 ...

  9. python3 LDA主题模型以及TFIDF实现

    import codecs #主题模型 from gensim import corpora from gensim.models import LdaModel from gensim import ...

  10. 关于Python2和Python3之间的文本模型改变

    原文地址:http://python-notes.curiousefficiency.org/en/latest/python3/questions_and_answers.html#what-act ...

随机推荐

  1. EasyUI组件新增方法与事件

    以window组件为例 事件 扩展事件直接定义在options中,可以再初始化组件时定义事件,也可以使用时临时定义事件.这里是组件初始化后在添加的. 使用情景:添加,插入功能.主界面表格分别点击添加和 ...

  2. apisix~集成服务发现注册中心

    摘要 当业务量发生变化时,需要对上游服务进行扩缩容,或者因服务器硬件故障需要更换服务器.如果网关是通过配置来维护上游服务信息,在微服务架构模式下,其带来的维护成本可想而知.再者因不能及时更新这些信息, ...

  3. 什么是Java线程池

    摘自:某个百度知道 多线程技术主要解决处理器单元内多个线程执行的问题,它可以显著减少处理器单元的闲置时间,增加处理器单元的吞吐能力. 假设一个服务器完成一项任务所需时间为:T1 创建线程时间,T2 在 ...

  4. 2024 CISCN WEB 部分wp

    前言 第二天的revenge真是绷不住,出的很好,下次多出点revenge. ezjava 简要介绍 sqlite jdbc...真的没想到,写文件覆盖写了半天,结果是个CVE...,给的很多东西都是 ...

  5. C# 炸弹人 winform版

    实现这个游戏的基本功能包含几个对象:玩家,怪物,墙砖,炸弹,通关的门.玩家通过上下左右方向键移动,放置炸弹,被怪物杀死,被炸弹炸死.怪物随机方向移动,能杀死玩家.炸弹有爆炸功能,炸弹的火花长度.通过的 ...

  6. 工作面试老大难-MySQL中的锁类型

    MySQL 是支持ACID特性的数据库.我们都知道"C"代表Consistent,当不同事务操作同一行记录时,为了保证一致性,需要对记录加锁.在MySQL 中,不同的引擎下的锁行为 ...

  7. SQL 分析与优化神器,验证了真相定律

    引言 今天要分享的是一个 SQL 语句分析的神器,它是一个基于 Soar 的开源 sql 分析与优化的 Web 图形化工具.我们在平常分析 SQL 语句,使用最多的方式就是 Explain 工具.了解 ...

  8. 简单粗暴通过 Binlog 日志来恢复 MySQL 数据

    引言 Binlog 日志的主要作用: 1.增量备份. 2.主从复制. 操作步骤 1.登录 MySQL -> 执行 show variables like '%log_bin%'; 查询 binl ...

  9. CSS操作——display属性

    display可以指定元素的显示模式,它可以把行内元素修改成块状元素,也可以把别的模式的元素改成行内元素.diisplay常用的值有四个. 语法: /* display: block; // 声明当前 ...

  10. go 基数排序

    package main import ( "fmt" ) func SelectSortMax(arr []int) int { arrLen := len(arr) if ar ...