线程(thread) vs.进程(process) 操作系统,多线程基本概念

 线程(thread) 与进程(process)是操作系统中两个非常重要的概念,也经常出现在技术类岗位面试中,并且根据面试者的回答侧重点如内存结构,线程通信等等进行展开。

关于二者的概念与区别,相关的书籍博客进行了各类阐述,较为繁杂。(下图显示了其中一部分)

本文从底层结构中去分析二者的区别,进而可以轻松理解二者在宏观上的差别。

进程结构


进程与进程之间相互独立,是操作系统进行资源分配与调度的独立单位,包含独立的逻辑内存空间(如32位操作系统,每个进程逻辑内存大小为4G),若干线程和线程间共享的文件与句柄。

线程结构


线程是程序实际运行的单元,内部包含栈(用于存储运行时数据,调用函数,返回地址等等),PC(存储运行指令或下一条指令的地址,指向内存)以及TLS(线程独立的存储空间,不与其它线程共享)。

因此,线程是程序实际运行的方式。进程是一个容器,将若干线程组合到一起,为多个线程分配共享的逻辑内存和资源,进行调度。线程与线程之间相互独立,不能直接交互。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值