进程线程相关概念

本文深入探讨了程序、进程和线程的概念。程序是静态的数据结构和算法组合,进程则是其动态执行实例,包含程序、数据和PCB。线程是操作系统调度的最小单位,允许多个子任务并发执行。并发性和并行性是多线程技术的核心,使得系统能同时处理多个任务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

提到进程线程就不得不把他们的父老乡亲都拉出来问候一下。
首先是程序(计算机程序)

百度百科中定义程序为一组计算机能识别和执行的指令,运行于计算机上,满足人们某种需求的信息化工具。

通俗点讲程序就是可以让CPU完成指定任务的指令序列,而作为一个程序员程序可以简单的将其看做使用编程语言实现得到的数据结构和算法有机结合。
程序 = 数据结构 + 算法

为了方便区分,我将程序理解为一个静态的概念,不管计算机运行与否,程序就在那里不增不减。没有启动的时候程序就是和数据类似的储存在计算机中的一串串01。

在这个定义中程序只包含了数据结构和算法,为了让程序运行,一些基本的数据会在代码中直接设定好,而实质上有一些特定的应用场景下还需要额外的数据程序才能够跑起来(比较典型的例子就是机器学习算法训练),为了方便管理操作系统的管理这样就引入了一个关于计算机中程序运行的概念进程

百度百科中对进程的定义是计算机中一个具有独立功能的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。

进程是一个动态的概念。在操作系统里面,进程就是一个分配了数据设备等资源可以执行的程序体,也即
进程 = 程序 + 数据 + 进程控制块(PCB)
借用一下相亲的场景,程序可以相当于适龄青年,但平时由于缺少房子车子和票子(数据)只能保持冷静,当他(她)挣够了米(分配了数据),拿到了PCB,这个PCB就相当于爱的号码牌,他就可以开始相亲了,但是开始相亲不一定就马上能脱单,还得排队,脱了单也不一定能结婚,还有可能分手,分了手也不一定GG,还有可能复合。也即进程还拥有等待、阻塞、执行、就绪等状态。
进程是程序运行的实例,一个程序可能有多个进程。一段程序代码每执行一次都会创建一个新的进程。

那线程是什么呢?线程是操作系统能够运算调度的最小单位。可以看做进程里面独立运行的子任务,进程负责向系统申请资源,多个线程共用这些资源来完成分立的不同任务。

这里就要提到两个性质并发性和并行性
并发性:一个处理机同时应对多个任务的能力。
并行性:多个处理机同时处理多个任务的能力。
具体理解可以参考这篇

并发性的实现就可以通过多线程技术。
打一个不恰当的比方,幼稚园有一整个班10个孩子在哭闹等着哄,并发相当于只有一个老师,这个老师先每个孩子哄2分钟让孩子们的哭声小一点,然后重复这个过程直到每个孩子都哄好为止;并行就相当于有10位老师,每个老师哄一个孩子最好把孩子哄好。同样都能够完成所有的任务。第一位老师哄每一个孩子的时候就相当于在进行当下的线程,10个孩子就有10个线程任务,两种方式最终都能够完成任务。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清雀Phoebe

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值