news 2026/7/15 19:18:58

对线程的理解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
对线程的理解

一、线程是什么

进程是操作系统资源分配的最小单位(独立内存、文件句柄、CPU 上下文等),而线程是进程内部独立执行流,是 CPU 调度执行的最小单位。 一个进程至少包含一条主线程,同一进程下所有线程共享进程的堆、全局变量、文件描述符等资源;但每条线程拥有私有栈、寄存器、局部变量,彼此执行互不阻塞。

可以通俗比喻: 进程 = 一间完整办公室(拥有桌椅、打印机、文件柜全部资源); 线程 = 办公室里同时干活的员工; 整间办公室资源所有人共用,但每个员工有自己的笔记本(私有栈),能独立做自己的工作。

二、线程与进程核心区别

  1. 资源隔离进程间资源完全隔离,通信成本极高(管道、socket、共享内存); 同进程线程共享绝大部分资源,通信简单,直接读写全局变量即可。
  2. 切换开销进程切换需要更换页表、刷新缓存、重置全套资源上下文,开销巨大; 线程仅切换私有栈与寄存器,同进程资源不变,切换速度远快于进程。
  3. 生命周期影响主线程结束,整个进程直接销毁,所有子线程一同终止; 单个子线程退出,不影响进程与其他线程运行。

三、多线程的核心价值:并发

CPU 同一时刻只能执行一条指令,单核 CPU 依靠时间片轮转,快速切换多个线程模拟同时运行;多核 CPU 则可以真正并行,多个线程在不同核心同时执行。 多线程主要解决两类场景:

  1. IO 阻塞场景:网络请求、文件读写、数据库操作会让线程闲置等待。单线程会全程卡住,多线程可让等待 IO 的线程让出 CPU,其他线程继续运算,充分利用 CPU。
  2. 计算密集场景:多核环境拆分计算任务到多线程并行执行,缩短整体耗时,提升运算效率。

四、多线程带来的问题:线程安全

资源共享是线程优势,也是最大隐患 ——多条线程同时读写同一共享数据,会产生数据竞争、结果错乱,即线程不安全。 举例:两个线程同时对变量count++,自增分为读取、计算、写入三步,线程交替执行会丢失更新,最终数值小于预期。

常见同步解决方案:

  • 互斥锁:同一时间仅一条线程访问共享资源,保证操作原子性;
  • 读写锁:读多写少场景,读线程可并行,写线程独占资源;
  • 原子类:底层硬件指令保证数值操作不可拆分,无锁高效;
  • 线程本地存储(ThreadLocal):让数据仅当前线程私有,从根源避免竞争。

除此之外多线程还存在死锁、线程频繁切换带来的上下文开销、内存可见性、指令重排等并发问题,需要配合锁、内存屏障合理规避。

五、线程的生命周期

通用状态分为五种:

  1. 新建(NEW):线程对象创建完成,未调用启动方法,未分配 CPU 资源;
  2. 就绪(RUNNABLE):调用 start 后等待 CPU 时间片,随时可执行;
  3. 运行(RUNNING):拿到时间片,CPU 正在执行线程代码;
  4. 阻塞(BLOCKED/WAITING):等待锁、sleep、IO 阻塞、等待通知,主动放弃 CPU;
  5. 终止(TERMINATED):代码执行完毕或异常退出,线程销毁,无法重启。

六、总结

线程是轻量化执行单元,依托进程存在,依靠资源共享实现高效并发; 单线程逻辑简单无并发冲突,但 IO / 多核场景性能低下; 多线程能充分利用硬件资源、提升程序吞吐,但必须处理共享资源竞争、同步锁、死锁等并发难题; 开发中需要根据业务场景权衡:IO 密集型适合多线程,简单轻量任务过多线程反而会因切换损耗降低性能。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/14 17:51:29

关于搜索算法在人工智能中的应用与演化的技术7

搜索算法在人工智能中的基础概念定义搜索算法的核心思想及其在AI中的角色,包括状态空间、搜索树、启发式函数等基本术语。讨论盲目搜索(如广度优先、深度优先)与启发式搜索(如A*算法)的区别。经典搜索算法的早期应用列…

作者头像 李华
网站建设 2026/7/14 18:01:05

华为MetaERP 财务 ERP 解决方案架构师(EBS+SAP+MetaERP 复合背景)全国需求现状 + 城市潜力分级一、全国整体市场需求(2026 年现状)1. 需求整体判断:结构性紧缺,复

财务 ERP 解决方案架构师(EBSSAPMetaERP 复合背景)全国需求现状 城市潜力分级一、全国整体市场需求(2026 年现状)1. 需求整体判断:结构性紧缺,复合型人才极度稀缺1)信创替换是核心增量引擎 全国…

作者头像 李华
网站建设 2026/7/14 18:36:01

数据中心电力模块的发展趋势对数据中心建设有哪些影响?

数据中心电力模块的发展趋势对数据中心建设有哪些影响?当单机柜功率密度从传统的数千瓦向数十甚至上百千瓦跃升,当一座智算中心的供电系统规模堪比一座小型变电站,数据中心建设的底层逻辑正在被重新书写。全球电力模块市场规模在2025年已达到…

作者头像 李华
网站建设 2026/7/14 18:41:08

在Python中用any-singleton实现单例模式单例模式

我个人常用类似以下的代码来实现单例模式: GLOBAL_KEY _my_coffee if GLOBAL_KEY not in globals():# 初始化:globals()[GLOBAL_KEY] {cup_of: tea} coff globals()[GLOBAL_KEY]print(coff[cup_of]) # Output: tea上面的coff就是一个单例,全局仅会初…

作者头像 李华
网站建设 2026/7/14 19:08:42

2025轻松指南:零基础医疗会议转待办,包教包会避坑干货满满

说真的,我之前一直觉得医疗会议记录是个“无解难题”—直到上个月帮心内科的张姐试了听脑,才发现原来能这么轻松!张姐跟我吐槽了大半年:科室每周两次病例讨论会,每次都要一边听主任分析病情,一边飞快记笔记…

作者头像 李华
网站建设 2026/7/14 13:16:24

论范式转移中的组织认知坍塌与动态评价体系的重构:从“柯达死链”到“用现在质疑过去”的演进逻辑

论范式转移中的组织认知坍塌与动态评价体系的重构:从“柯达死链”到“用现在质疑过去”的演进逻辑摘要: 在本轮以人工智能大模型、具身智能、量子计算及半导体公理跃迁为代表的破坏性创新浪潮中,传统科层制巨头频繁陷入一种群体性的“内源性中…

作者头像 李华