Linux进程与线程的概念和区别

一、进程

1.1 进程的概念

​ 是计算机系统进行资源分配和调度的基本单位。在现在的面向线程的计算机结构中,进程是线程的容器。程序是指令、数据及其组织关系形式的描述,进程是程序的实体

​ 一个进程通常有三部分组成:进程控制块PCB、数据、程序

1.2 进程的优势

​ (1)每个进程相互独立,不影响主程序的稳定

​ (2)通过增加CPU,可以扩充性能

​ (3)可以尽量减少线程枷锁、解锁的影响

1.3 进程的劣势

​ (1)逻辑控制复杂,需要和主程序交互

​ (2)需要跨进程边界

二、线程

​ 2.1 线程的概念

​ 是程序执行流的最小单位。线程是程序中一个单一的顺序控制流程。进程内一个单独的、可调度的执行单元,是系统独立调度和分配CPU的基本单位。在单个程序中同时运行多个线程完成不同的工作,成为多线程。线程的栈是独立的,堆是共享的

​ 2.2 线程的优势

​ (1)无需跨进程边界

​ (2)程序逻辑和控制方式简单

​ (3)所有线程可以直接共享内存和变量

​ (4)线程方式消耗的总资源比进程程方式少

​ 2.3 线程的劣势

​ (1)每个线程与主程序公用地址空间

​ (2)线程之间的同步和加锁控制麻烦

​ (3)一个线程的崩溃可能影响整个程序的稳定性

三、区别和联系

(1)资源分配和处理器调度:进程是资源分配的基本单位,线程是处理器调度的基本单位

(2)地址空间:进程拥有独立的地址空间,线程没有独立的地址空间,同一进程内的多个线程共享其资源

(3)执行:一个程序至少有一个进程,一个进程至少有一个线程

(4)线程是操作系统可识别的最小执行和调度单位

(5)资源分配给进程,同一进程中的线程共享该进程的所有资源。同一进程中的所有线程共享代码段(代码和常量),数据段(全局变量和静态变量),扩展段(堆存储)。但是每个线程拥有自己的栈段,栈段又叫运行时段,用来存放所有局部变量和临时变量。

(6)CPU分配给线程,即真正在处理器运行的是线程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值