快速理解什么是线程和进程以及两者联系和区别-AlvinCR个人理解版

本文是AlvinCR中句柄一文的部分内容,原文:https://alvincr.com/2021/01/handle-thread-process-lookhandle/

线程

进程(英语:process),是指计算机中已运行的程序。从这里可以看出进程就是这个程序的全部,如果将进程终止,那么整个程序也就会终止。

程序本身只是指令,数据及其组织的描述,等同于名词,而过程是程序的真实运行实例(那些指令和数据)。现代计算机系统可以在同一时间段内以进程的形式将多个程序加载到内存中,并使用时间共享(或时分多路复用)来显示一种处理器感觉上的同时(并行)操作。同样,使用多线程技术的操作系统或计算机体系结构(多线程意味着每个线程代表一个进程中的独立执行上下文)。同一程序的并行线程可以在多个CPU主机或网络上同时运行。 (在不同的CPU上)。–WIKI

进程

线程(英语:thread)是操作系统能够进行运算调度的最小单位。大部分情况下,它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。

线程是独立调度和分派的基本单位。线程可以为操作系统内核调度的内核线程,如Win32线程;由用户进程自行调度的用户线程,如Linux平台的POSIX Thread;或者由内核与用户进程,如Windows 7的线程,进行混合调度。

同一进程中的多条线程将共享该进程中的全部系统资源,如虚拟地址空间,文件描述符和信号处理等等。但同一进程中的多个线程有各自的调用栈(call stack),自己的寄存器环境(register context),自己的线程本地存储(thread-local storage)。

–WIKI

总结:

以下是alvincr个人理解,如有错误请斧正

(1)服务器/windows系统相当于工厂,进程相当于工厂的车间, 线程相当于流水线。每个车间至少要有一个流水线,然而流水线并不一定属于这个车间(流水线也必须属于一个车间,不能闲着)。即:一个进程可以有很多线程来处理,每条线程并行执行不同的任务。

(2)如果想要车间生产更多的东西,就必须提供更多的流水线,因此某个任务所需资源越多,需要的线程也就越多。

(3)平时购买的CPU,会有6核12线程,在某种程度上这也类似于线程和进程的关系。每个CPU核心任何时间内仅能运行一项进程,因此对于运行多个程序的用户而言就需要购买多核处理器,以免出现卡顿的情况。

(4)进程则可以跨机器迁移并且利于资源的管理和保护,线程执行开销小并且可以在某些机器上直接运行,无需二次编译。

(5)程序在被执行的时候从CPU中抽象成进程,CPU处理进程的时候是采用时间片轮转的方式,因此会把进程给分割成多个线程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值