操作系统-进程与线程的区别
1.什么是进程
简单的讲,进程是执行的程序,资源分配的最小单位。
进程包括:文本段(程序代码)、程序计数器的值、CPU寄存器的内容、堆、栈、数据段
进程的状态:新的、就绪、运行、等待、终止
进程控制块(PCB):进程状态、程序计数器、CPU寄存器、CPU调度信息、内存管理信息、记账信息、I/O信息
2.什么是线程
线程是CPU调度的基本单位,它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。
3.区别
原文链接:https://blog.csdn.net/qq_28286687/article/details/105995599
1.进程是拥有资源的最小单位;线程是调度的最小单位。
2.进程拥有自己独立的地址空间,每启动一个进程,系统会为其配地址空间,建立数据来维护代码段、堆栈段、数据段;线程没有独立的空间地址,它使用相同的地址空间共享数据。
3.CPU切换一个线程比一个进程花费小。
4.创建一个线程比一个进程开销小。
5.线程占用的资源比进程少很多。
6.线程之间通信更方便,同一进程下,线程共享全局变量、静态变量等数据。
7.多进程程序更加安全、生命力更强,一个进程死掉不会影响另一个进程(它拥有独立地址空间);多线程程序不易维护,一个线程死掉,整个线程就结束了(共享地址空间)。
8.进程保护要求高,开销大,效率相对较低;线程效率就比较高,可以频繁切换。