文章目录
重点:“进程”和“线程”的两者区别
内容:简单的理解一下“线程” 和“进程”两个概念,最后总结一下两者的区别。
先来对这两者的区别进行一个比喻:我们把进程比喻为一个工厂的话,那其实线程就是这个工厂中的无数条生产线。每一条生产线生产的产品都是不一样的,但是这些产品有些原材料确实相同的。最后所有的生产线生产出的东西最后组成了这个工厂所生产的东西。
进程
1、进程是操作系统分配资源的最小单位。是程序的一个执行实例。
2、点击一个.exe文件之后,操作系统就会加载这哥可执行文件,并为其分配资源到最后的销毁资源。这就是一个进程的过程。因此进程是一个动态的过程。
3、CPU是如何管理进程的?-先描述、后组织
(1)内核中需要使用PCB结构体来描述进程,每创建一各进程,就需要创建一个类似PCB这样的实例。
(2)当创建了一个线程,有了PCB对象之后,就需要把对象加入到链表中。通过任务管理器看到的进程信息,其实就是遍历整个内核中的链表。
4、PCB都包含pid、一组内存指针、状态、优先级、进程的记账信息、上下文。
线程
1、线程是操作系统进行调度和执行的最小单位。
2、线程其实是一种轻量级的“进程”,也是一种并发编程的方式。
3、如果管理线程的?和管理进程的方式相同,也是先通过PCB进行描述,再用双向链表进行管理。
4、一个进程中的有多少个线程取决于CPU的个数和线程执行的任务类型相关。
“进程”和“线程”的区别
1、在操作系统中,可以同时执行多个进程(程序),每个进程可以执行多个线程(通过CPU调度,在一个时间片中只能执行一个线程)。
2、进程是操作系统分配资源的最小单位。线程是操作系统进行调度和执行的最小单位。
3、每个进程都有独立的代码和上下文,且进程之间相互切换开销比较大。同一个类中的不同线程是共享代码和数据空间的,线程之间切换开销比较小。
4、同一进程的线程共享本进程的地址空间和资源,而进程之间的地址空间和资源是相互独立的
5、一个进程崩溃后,在保护模式下不会对其他进程产生影响,但是一个线程崩溃整个进程都会有影响。
6、每个独立的进程有程序运行的入口、顺序执行序列和程序出口。但是线程不能独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制,两者均可并发执行