程序进程和线程的定义
什么是程序
程序是电脑中安装的应用 就叫做程序,但是未启动它它只是存在于电脑中,只有我们打开它,它才会编程一个进程,也就是进程是程序在计算机中执行的活动。也就是当我们运行了 程序,就会会启动一个进程。也就是运行中的程序,才能是进程。显然 程序是 死的、静态的。
什么是进程
进程是操作系统分配系统资源的最小单位,资源包括CPU、内存、磁盘IO等等,同一个进程中,多个线程同享这个进程下的所有资源,而进程与进程之间是相互独立的。
什么是线程
线程是进程的一个实现,也是CPU调度分派的最小单位,系统基本不拥有系统资源,只在运行时拥有一点必不可少的资源(程序计数器、寄存器、栈),但是线程之间是共享进程中的所有资源的,包括CPU,内存,IO
线程是无处不在的
任何一个程序进程,都需要通过线程来完成它要完成的执行任务,然而由于线程他们共享同一个进程下的资源,所以总是会存在并行、并发的情况。
线程与CPU核心数
CPU多核心:是指 单芯片多处理器(简称CMP),CMP是斯坦福大学提出的,其思想是将大规模对称多处理器集成到同一芯片,各个处理器 并行的 执行不同的进程。这种多CPU处理器的架构运行程序能实现超高速的计算,也称为并行执行。
核心数:一般情况下一个核心只有一个处理器,也就是单核心单线程处理器,但由Intel引入了超线程技术后,使得一个核心能有多个线程处理,也就形成了 1:2的 【 核心:线程】比
CPU时间片轮转机制
时间片轮转调度是一种最古老、最简单、最公平且使用最广的算法,又称 RR调度。每个进程被分配一个时间段,称作它的时间片,即该进程允许运行的时间。
如果一个进程在分配的时间片内运行无法结束,则还是会剥夺该进程的CPU,并将该CPU分配给其他进程,然后将该进程的执行任务放到 一张就绪进程队列的末尾等待CPU重新分派CPU时间。
如果 时间片 时间设置在20ms,CPU在程序间切换时间是5ms,那么CPU运行效率只有80%,有20%被浪费,
如果 时间片 时间设置为 1000ms,CPU切换时间为5ms,那么只有0.1%的效率被浪费,然而这样做的话,当CPU全部分配后,其他等待进程的时间等待时间就会变得比较长,所以将CPU时间片设置为100ms通常是一个比较合理的折衷办法。
澄清并行与并发
并行:可以理解为多条高速公路,8车道,意味着可以同时 允许 8辆车并排运行而互不干扰。
并发:是说在一个单位时间内,执行同一个任务的次数,叫做并发量,离开单位时间谈并发就没有意义。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~