python 多线程 守护线程
daemon线程:守护线程,优先级别最低,一般为其它线程提供服务。通常,daemon线程体是一个无限循环。如果所有的非daemon线程(主线程以及子线程)都结束了,daemon线程自动就会终止。t.daemon 属性,设置为True,则为daemon线程,必须在start()之前调用
import threading
import timedef say(name):print('say 你好 {} time: {} '.format(name,time.ctime()))time.sleep(4)print('say 结束 {} time:{}'.format(name,time.ctime()))def listen(name):print('listen 你好 {} time: {} '.format(name,time.ctime()))time.sleep(4)print('listen 结束 {} time:{}'.format(name,time.ctime()))if __name__=='__main__':t1=threading.Thread(target=say,args=('tony',))t1.setDaemon(True) #设置为主线程的守护线程t1.start()t2=threading.Thread(target=listen,args=('simon',))t2.setDaemon(True) #守护线程一般是服务于其他线程,当程序没有线程时,则守护线程自动结束t2.start()print('主线程结束')
不设置守护线程
import threading
import timedef say(name):print('say 你好 {} time: {} '.format(name,time.ctime()))time.sleep(4)print('say 结束 {} time:{}'.format(name,time.ctime()))def listen(name):print('listen 你好 {} time: {} '.format(name,time.ctime()))time.sleep(4)print('listen 结束 {} time:{}'.format(name,time.ctime()))if __name__=='__main__':t1=threading.Thread(target=say,args=('tony',))# t1.setDaemon(True) #设置为主线程的守护线程t1.start()t2=threading.Thread(target=listen,args=('simon',))# t2.setDaemon(True)#守护线程一般是服务于其他线程,当程序没有线程时,则守护线程自动结束t2.start()print('主线程结束')
相关文章:

python 多线程 守护线程
daemon线程:守护线程,优先级别最低,一般为其它线程提供服务。通常,daemon线程体是一个无限循环。如果所有的非daemon线程(主线程以及子线程)都结束了,daemon线程自动就会终止。t.daemon 属性,设…...

以unity技术开发视角对android权限的讲解
目录 前言 Android权限分类 普通权限 普通权限定义 普通权限有哪些 危险权限 危险权限的定义 危险权限有哪些 动态申请权限实例 申请单个权限实例 第一步:在清单文件中声明权限 第二步:在代码中进行动态申请权限 申请多个权限实例 第一步&am…...

910b上跑Chatglm3-6b进行流式输出【pytorch框架】
文章目录 准备阶段避坑阶段添加代码结果展示 准备阶段 配套软件包Ascend-cann-toolkit和Ascend-cann-nnae适配昇腾的Pytorch适配昇腾的Torchvision Adapter下载ChatGLM3代码下载chatglm3-6b模型,或在modelscope里下载 避坑阶段 每个人的服务器都不一样࿰…...
2024年江苏省职业院校技能大赛高职学生组软件测试—任务五接口测试题目
2024年江苏省职业院校技能大赛高职学生组软件测试任务五 接口测试 任务要求 题目1:登录接口脚本编写和执行测试。 1、登录接口描述如下: 接口功能:提供用户登录功能处理,根据传入的用户名和密码判断登录状态。 接口地址&…...

螺旋数字矩阵 - 华为OD统一考试
OD统一考试(C卷) 分值: 100分 题解: Java / Python / C 题目描述 疫情期间,小明隔离在家,百无聊赖,在纸上写数字玩。他发明了一种写法: 给出数字个数n和行数m (0 < n < 999,…...

更改ERPNEXT源
更改ERPNEXT源 一, 更改源 针对已经安装了erpnext的,需要更改源的情况: 1, 更改为官方默认源, 进入frapp-bench的目录, 然后执行: bench remote-reset-url frappe //重设frappe的源为官方github地址。 bench remote-reset-url…...

配置基本QinQ示例
QinQ简介 定义 QinQ(802.1Q-in-802.1Q)技术是一项扩展VLAN空间的技术,通过在802.1Q标签报文的基础上再增加一层802.1Q的Tag来达到扩展VLAN空间的功能,可以使私网VLAN透传公网。由于在骨干网中传递的报文有两层802.1Q Tag&#x…...

界面控件DevExpress Blazor Grid v23.2 - 支持全新的单元格编辑模式
DevExpress Blazor UI组件使用了C#为Blazor Server和Blazor WebAssembly创建高影响力的用户体验,这个UI自建库提供了一套全面的原生Blazor UI组件(包括Pivot Grid、调度程序、图表、数据编辑器和报表等)。 在这篇文章中,我们将介…...

深入剖析pcap中的网络异常:TTL过期攻击、ARP中毒、TCP重传与重叠碎片等
网络流量数据包捕获是网络安全领域的重要部分,而pcap文件则是这一过程的常见载体。为了深入解析pcap文件中潜在的可疑网络流量,我们需要运用强大的网络安全威胁评估与审计工具。这些工具能够帮助我们捕捉、记录、检测和诊断网络中的数据传输问题…...

网站被挂黑链怎么办
网站被挂黑链这种事情总是防不胜防,且不说网站本身的安全防护做的是否到位,但只要被盯上了就难逃厄运。即使是企业机构的网站也难逃被黑的经历,更何况用户苦心经营的网站,因此首先需要正确看待挂黑链这个现象,网站被挂…...

WPF 导航界面悬浮两行之间的卡片 漂亮的卡片导航界面 WPF漂亮渐变颜色 WPF漂亮导航头界面 UniformGrid漂亮展现
在现代应用程序设计中,一个漂亮的WPF导航界面不仅为用户提供视觉上的享受,更对提升用户体验、增强功能可发现性和应用整体效率起到至关重要的作用。以下是对WPF漂亮导航界面重要性的详尽介绍: 首先,引人入胜的首页界面是用户与软…...

[技术杂谈]使用VLC将视频转成一个可循环rtsp流
通过vlc播放器,将一个视频转成rtsp流,搭建一个rtsp服务器。rtsp客户端可访问这个视频的rtsp流。 1. 打开vlc播放器,使用的版本如下 2. 菜单:媒体 ---> 流 3. 添加视频文件,点击添加一个mp4 文件 4. 选择串流&…...

手机上连网络转接app,电脑连接手机,共用网络转接app的办法
方法一,(不推荐) 因为太简单了所以写一下 电脑安装MuMu模拟器,之后安装网络转接app,这个模拟器设置了从电脑上安装app和,安卓与电脑同步文件夹功能,实现文件共享。所以直接用就可以了。 方法二…...

k8s中的容器探针
pod的容器健康检查---探针 probe:k8s对容器执行的定期检查,诊断。 探针的三种规则 所有的探针都是针对容器不是针对pod 1、 存活探针---livenessProbe:探测容器是否正常运行。如果发现探测失败,会杀掉容器。容器会根据重启策略…...

4.6 BOUNDARY CHECKS
我们现在扩展了tile矩阵乘法内核,以处理具有任意宽度的矩阵。扩展必须允许内核正确处理宽度不是tile宽度倍数的矩阵。通过更改图4.14中的示例至33 M、N和P矩阵,图4.18创建了矩阵的宽度为3,不是tile宽度(2)的倍数。图4.…...
Java集合-LinkedList
Java集合-LinkedList 特性 public class LinkedList<E> extends AbstractSequentialList<E>implements List<E>, Deque<E>, Cloneable, java.io.Serializable1、继承于 AbstractSequentialList ,本质上面与继承 AbstractList 没有什么区别…...

2023年阿里云云栖大会:前沿技术发布与未来展望
在2023年的阿里云云栖大会上,我见证了云计算和人工智能领域的又一历史性时刻。这次大会不仅是对未来科技趋势的一次深入探索,更是阿里云技术实力和创新能力的集中展示。 首先,千亿级参数规模的大模型通义千问2.0的发布,无疑将人工…...

houdini microscope
【英文原版-无字幕】Wavelets: a mathematical microscope 小波变换最好的入门教程了吧!_哔哩哔哩_bilibili 只涉及模拟,不模拟具体对错...

Linux_CentOS_7.9配置时区及NTPdate同步之简易记录
前言:ntpdate命令来自英文词组”NTPdate“的拼写,其功能是用于设置日期和时间。ntpdate命令能够基于NTP协议设置Linux系统的本地日期和时间,利用NTP服务的时钟过滤器来选择最优方案,大大提高了可靠性和精度,让系统时间…...

十九:爬虫最终篇-平安银行商城实战
平安银行商场实战 需求 获取该商城商品信息 目标网址 https://m.yqb.com/bank/product-item-50301196.html?mcId1583912328849970&loginModepab&historyy&sceneModem&traceid30187_4dXJVel1iop详细步骤 1、寻找数据接口 2、对比payload寻找可疑参数 3、多…...

Opencv中的addweighted函数
一.addweighted函数作用 addweighted()是OpenCV库中用于图像处理的函数,主要功能是将两个输入图像(尺寸和类型相同)按照指定的权重进行加权叠加(图像融合),并添加一个标量值&#x…...
【Nginx】使用 Nginx+Lua 实现基于 IP 的访问频率限制
使用 NginxLua 实现基于 IP 的访问频率限制 在高并发场景下,限制某个 IP 的访问频率是非常重要的,可以有效防止恶意攻击或错误配置导致的服务宕机。以下是一个详细的实现方案,使用 Nginx 和 Lua 脚本结合 Redis 来实现基于 IP 的访问频率限制…...
Python+ZeroMQ实战:智能车辆状态监控与模拟模式自动切换
目录 关键点 技术实现1 技术实现2 摘要: 本文将介绍如何利用Python和ZeroMQ消息队列构建一个智能车辆状态监控系统。系统能够根据时间策略自动切换驾驶模式(自动驾驶、人工驾驶、远程驾驶、主动安全),并通过实时消息推送更新车…...

认识CMake并使用CMake构建自己的第一个项目
1.CMake的作用和优势 跨平台支持:CMake支持多种操作系统和编译器,使用同一份构建配置可以在不同的环境中使用 简化配置:通过CMakeLists.txt文件,用户可以定义项目结构、依赖项、编译选项等,无需手动编写复杂的构建脚本…...
Vue 模板语句的数据来源
🧩 Vue 模板语句的数据来源:全方位解析 Vue 模板(<template> 部分)中的表达式、指令绑定(如 v-bind, v-on)和插值({{ }})都在一个特定的作用域内求值。这个作用域由当前 组件…...

从物理机到云原生:全面解析计算虚拟化技术的演进与应用
前言:我的虚拟化技术探索之旅 我最早接触"虚拟机"的概念是从Java开始的——JVM(Java Virtual Machine)让"一次编写,到处运行"成为可能。这个软件层面的虚拟化让我着迷,但直到后来接触VMware和Doc…...

软件工程 期末复习
瀑布模型:计划 螺旋模型:风险低 原型模型: 用户反馈 喷泉模型:代码复用 高内聚 低耦合:模块内部功能紧密 模块之间依赖程度小 高内聚:指的是一个模块内部的功能应该紧密相关。换句话说,一个模块应当只实现单一的功能…...

GraphRAG优化新思路-开源的ROGRAG框架
目前的如微软开源的GraphRAG的工作流程都较为复杂,难以孤立地评估各个组件的贡献,传统的检索方法在处理复杂推理任务时可能不够有效,特别是在需要理解实体间关系或多跳知识的情况下。先说结论,看完后感觉这个框架性能上不会比Grap…...

如何把工业通信协议转换成http websocket
1.现状 工业通信协议多数工作在边缘设备上,比如:PLC、IOT盒子等。上层业务系统需要根据不同的工业协议做对应开发,当设备上用的是modbus从站时,采集设备数据需要开发modbus主站;当设备上用的是西门子PN协议时…...

【版本控制】GitHub Desktop 入门教程与开源协作全流程解析
目录 0 引言1 GitHub Desktop 入门教程1.1 安装与基础配置1.2 核心功能使用指南仓库管理日常开发流程分支管理 2 GitHub 开源协作流程详解2.1 Fork & Pull Request 模型2.2 完整协作流程步骤步骤 1: Fork(创建个人副本)步骤 2: Clone(克隆…...