测试开发必备技能:Python多线程处理

什么是进程

  • 进程是执行中的程序

  • 拥有独立地址空间,内存,数据栈等

  • 操作系统统一管理

  • 派生(fork或spawn)新进程

  • 进程间通信(IPC)方式共享信息

什么是线程

  • 同进程下执行,并共享相同的上下文

  • 线程间的信息共享和通信更加容易

  • 多线程并发执行

  • 需要同步原语

python与线程

  • 解释器主循环

  • 主循环中只有一个控制线程在执行

  • 使用全局解释器锁(GIL)

GIL保证一个线程

  • 设置GIL

  • 切换进一个线程去运行

  • 执行下面的操作之一

    指定数量的字节码指令

    线程主动让出控制权

  • 把线程设置回睡眠状态(切换出线程)

  • 解锁GIL

  • 重复上述步骤

两种线程管理

Python提供了两种线程管理模式。

  • _thread:提供了基本的线程和锁。

  • threading:提供了更高级别,功能更全的线程管理。threading底层使用了_thread。

支持同步机制

支持守护线程

_thread模块

使用_thread模块案例1

代码:

运行结果:

注意:这里主方法中必须加上time.sleep(6),否则主进程退出后,所有子进程都将强行退出,所有子线程将不被执行。这里也该模块的缺点之一,因为它没有守护线程的概念。


以下结果是不加time.sleep(6)的效果。

使用_thread模块案例2-利用锁

上述案例中其实存在缺点。在实际应用中,我们并不确定主线程需要等待子线程几秒钟,子线程才能结束。所以本案例加入锁,可以有效的解决这一问题。

代码:

运行结果:

threading模块

使用threading模块案例

threading自带锁,可以更有效解决上述案例【使用_thread模块案例2-利用锁】的问题。

代码:

运行结果:

注意:loop 0 和loop 1的执行先后顺序不是一定的。

Thread类

使用threading模块案例-重写threading.Thread

我们可以继续改进上述案例【使用threading模块案例】,使得代码更加符合面向对象编程的思想。

代码:

运行结果:

感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1200619.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

621-0022-AR隔离分析输入模块

621-0022-AR 隔离分析输入模块621-0022-AR 是工业控制系统中的 隔离分析输入模块,主要用于采集现场的模拟信号,并通过隔离技术保护控制系统,同时保证数据的准确性和稳定性。它适用于需要高精度测量和信号保护的工业应用场景。核心作用信号采集…

C/C++ Linux网络编程2 - Socket编程与简单UDP服务器客户端 - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

那曲市英语雅思培训辅导机构推荐,2026权威出国雅思课程中心学校口碑排行榜推荐

经教育部教育考试院备案、全国雅思教学质量评估中心独家指导,参照《2025-2026中国大陆雅思备考趋势白皮书》核心指标,结合那曲市色尼区、安多县、聂荣县、班戈县、比如县等区县9000份考生调研问卷、95家教育机构实测…

人工磨题 VS 宏智树 AI 设计?实证调研的效率革命藏在这里

做社科类实证论文时,你是否陷入过这样的两难:手动设计问卷,耗一周打磨题目仍被导师批 “信效度不足”;用普通工具生成,又担心题目诱导性强、逻辑漏洞多,最后收集的数百份数据全部作废?作为深耕论…

【Jmeter】深度解剖Jmeter的二次开发

JMeter 是一个功能强大的性能测试工具,但它可能无法满足特定项目或组织的特定需求。通过进行二次开发,可以定制 JMeter,使其适应具体项目的需求。例如,可能需要添加自定义的测试元件、报告生成器或结果分析器等。二次开发三种方式…

621-3580RC输入模块

621-3580RC 输入模块621-3580RC 是工业自动化控制系统中的 数字/离散输入模块,用于接收现场开关、传感器或其他数字设备的信号,并将其传递给控制系统进行处理。核心作用信号采集:将现场数字量(开关状态、继电器信号等)…

宏智树AI藏大招!课程论文不用熬,3步写出高分稿

作为深耕论文写作科普的博主,后台每天都被同学问:“课程论文怎么写才不敷衍?”“几千字的稿子,有没有高效又不踩雷的方法?” 其实课程论文虽不像毕业论文那样严苛,却也卡在“知识点落地、格式合规、查重达标…

2025年市场新动向:中式服装加盟哪家强?最新排行揭晓,中式服装加盟排行榜技术领航者深度解析

近年来,随着文化自信的回归与消费升级的深化,中式服装市场正经历一场从“国潮”到“国风”的深刻演变。消费者不再满足于简单的符号化设计,转而追求更具文化底蕴、工艺价值与日常穿着体验的新中式服饰。这一趋势催生…

2026 1月晚练记录

Week 4 Tuesday(1.20) P3092 [USACO13NOV] No Change G 水题(但我为什么数组开小了呢) 不难发现,\(k\) 的值很小,我们可以考虑状态压缩。 令 \(f_i\) 表示我状态为\(i\) 时我能走到的最大距离,最后用二分和前缀…

软件测试or车载测试,到底该怎么选?

随着各种软件的开发,以及智能汽车的发展,软件测试和车载测试在保障各系统的可靠性和稳定性起着至关重要的作用。 他们都致力于确保系统的质量,保障各系统正常运行,但因为二者的应用领域不同,在诸多方面既有相同点也有…

那曲市英语雅思培训辅导机构推荐,2026权威出国雅思课程中心学校口碑排行榜

经教育部教育考试院备案、全国雅思教学质量评估中心独家指导,参照《2025-2026中国大陆雅思备考趋势白皮书》核心指标,结合那曲市色尼区、安多县、聂荣县、班戈县、比如县等区县9000份考生调研问卷、95家教育机构实测…

lvgl v8之list控件使用

static lv_obj_t* list1;static void event_handler(lv_event_t* e) {lv_event_code_t code = lv_event_get_code(e);lv_obj_t* obj = lv_event_get_target(e);if (code == LV_EVENT_CLICKED

宏智树 AI:一键生成三类高分 PPT,学术汇报再也不用熬大夜

作为深耕论文写作科普的教育博主,后台被问得最多的问题不是 “论文框架怎么搭”,也不是 “参考文献怎么排”,而是 “PPT 怎么做才能让导师眼前一亮”。不管是开题报告的思路呈现、论文答辩的成果展示,还是职场的工作汇报&#xff…

分布式架构:Dubbo 协议如何做接口测试

传统单体架构是一个应用程序进程内处理完所有的逻辑:一个系统糅合了多个功能,如注册 --登录--充值--余额管理--用户积分等,所有的功能模块都是在一个应用程度里处理完的;一个请求过来--> 到应用程序系统-->数据库处理-->…

北京研究生留学中介top10排名揭晓,收费透明,选择无忧

北京研究生留学中介top10排名揭晓,收费透明,选择无忧我是李硕,一名从业12年的国际教育规划师,专注于研究生阶段的留学申请策略研究。在2026年1月10日的今天,随着留学申请竞争日趋激烈与信息愈发繁杂,许多计划赴海…

详细介绍:STM32百问百答:从硬件到软件全面解析

详细介绍:STM32百问百答:从硬件到软件全面解析pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", …

java_ssm13低值高校办公耗材易耗品管理信息系统的设计与实现_1s9ke

目录具体实现截图摘要系统所用技术介绍写作提纲源码文档获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!具体实现截图 摘要 高校办公耗材管理是行政后勤工作的重要组成部分,传统人工管理方式存在效率低、易出错、库存不透明等问题。…

量子开发崛起:软件工程师必学的3个入门技能

量子时代的测试新挑战 量子计算正从实验室走向产业化,IBM和Google等公司已实现超千量子比特系统,为软件开发奠定硬件基础。对软件测试从业者而言,量子软件的特性(如叠加态和纠缠)带来了前所未有的测试难题&#xff1a…

DeepSeek+LangChain+DeepDiff:智能测试数据自动对比工具

在日常的测试工作中,我们在测试数据对比时经常会遇到以下难题: 对比的差异结果缺少清晰的可视化呈现; 两个表处于不同的数据库中,增加了对比难度; 源表和目标表字段数量众多,业务逻辑复杂,手动…

广州最好的研究生留学机构评选,学员满意度高成核心优势

广州最好的研究生留学机构评选,学员满意度高成核心优势一、 广州学子如何甄选可靠的研究生留学伙伴?在广州这座高等教育资源丰富的城市,每年都有大量本科毕业生将目光投向海外名校,期盼通过研究生深造提升竞争力。…