当前位置: 首页 > news >正文

threading线程模块:线程创建、执行顺序、线程等待详解

博客导语

Python多线程是IO密集任务最优解之一,新手最容易踩的坑:主线程提前退出、子线程乱序执行、不知道join阻塞原理。本文手把手讲解线程两种创建方式、守护线程、线程等待、执行顺序底层机制。

一、线程创建两种标准方式

1. 函数式创建(简单任务首选)

import threading import time def task(name): print(f"子线程 {name} 开始执行") time.sleep(2) print(f"子线程 {name} 执行结束") if __name__ == "__main__": t1 = threading.Thread(target=task, args=("线程1",)) t2 = threading.Thread(target=task, args=("线程2",)) t1.start() t2.start()

2. 类继承创建(复杂任务首选)

class MyThread(threading.Thread): def __init__(self,name): super().__init__() self.name = name def run(self): print(f"子线程 {self.name} 运行") time.sleep(2) t = MyThread("自定义线程") t.start()

二、线程核心方法

  • start():创建并启动线程,只能调用一次

  • run():线程真正执行逻辑,不启动线程

  • join():主线程阻塞等待子线程结束

  • is_alive():判断线程是否存活


三、线程等待 join() 关键原理

默认情况下,主线程不会等待子线程,主线程执行完毕会直接退出程序。join() 会阻塞主线程,直到子线程执行完毕。

t1.start() t1.join() # 主线程等待 t1 结束再往下走 print("主线程结束")

四、守护线程 daemon

守护线程:主线程退出,守护线程强制退出,不阻塞程序结束。日志、心跳线程常用。

t = threading.Thread(target=task, daemon=True)

五、线程执行无序性

线程由操作系统调度,执行顺序随机,无法人为控制,这也是线程安全问题的根源。

http://www.jsqmd.com/news/1038899/

相关文章:

  • 2026年成都GEO优化机构综合实力排名及选型参考 - 刘向阳而生
  • 如何一键嗅探下载全网视频音频资源:Res-Downloader终极指南
  • 用 WorkBuddy + IMA 知识库打通接口验证全流程 (1)
  • ASC1T45S 1 位双电源总线收发器高可靠性与环境适应性及应用解析
  • 海螺视频API成本解析:token计费、分辨率陷阱与4步优化法
  • 基于 QT(C++) 实现 (GUI)IP 流量分析程序
  • 3分钟掌握Briss-2.0:终极PDF裁剪神器让文档排版焕然一新
  • VMware 安装 CentOS 7 Linux 虚拟机全流程指南:从下载到远程连接测试
  • MapLibre GL JS第57课:使用 text-variable-anchor-offset 允许高优先级标签移动位置以保持在地图上(标签避碰2)。
  • Gemini 2.5 Deep Think:数学深度推理的范式革命
  • 2026年云南昆明装修选购参考指南:家装整装、别墅装饰、全屋定制、旧房新房施工优质厂商汇总 - 海棠依旧大
  • TensorFlow tf.data工业级优化:从IO瓶颈到GPU满载的完整实践
  • 2026年 制冷设备推荐榜:成都制冷系统方案设计/设备安装/技术服务/维修/自动化控制公司精选 - 品牌发掘
  • 2026年成都GEO优化机构选择指南 从服务到效果全方位解析 - 刘向阳而生
  • 出差回来攒了四场会议录音,2026怎么选靠谱会议纪要自动生成器?
  • 7个突破性产品设计工具链:从用户研究到原型交付的完整解决方案
  • 5分钟极速上手:让普通鼠标在macOS上超越苹果触控板的终极方案
  • 2026 CCF CAT 反思——于诗涵
  • 轻量级皮肤AI筛查系统:CNN模型驱动的临床落地实践
  • NSC_BUILDER:Switch游戏文件管理的终极工具箱,30+功能一站式解决方案
  • MPC860ADS开发板硬件架构与软硬件协同设计深度解析
  • 如何让老旧Mac焕发新生:OpenCore Legacy Patcher终极实战指南
  • PyTorch性能分析终极指南:Profiler与TensorBoard深度解析
  • PS501单芯片电池管理方案:可编程BMS的硬件设计与软件配置实战
  • 教育大模型落地的底层逻辑:场景原生与闭环驱动
  • 模块五总结:五个方向,选一个深入的建议
  • PhotoGIMP完整指南:Photoshop用户转向免费开源软件的终极解决方案
  • 2026年除湿加湿系统厂家TOP5推荐:重庆低温除湿、温湿度远程监控与高温加湿技术深度解析 - 品牌发掘
  • 第八章:Skill — 把经验固化为可复用的工作流
  • Steamless终极指南:如何一键移除Steam游戏DRM保护层