一、进程和线程分析
下面就两者的区别和联系分析如下:
| 进程 | 线程 |
定义 | 资源(CPU时间、内存等)分配的最小单位 | 程序执行的最小单位 |
区别 | 1.独立的地址空间,每创建一个进程,就会给改进程分配一个4G的虚拟内存空间; | 1.没有单独的地址空间(同一进程内的线程共享进程的地址空间); |
联系 | 1.一个进程有几个线程组成; | |
OS而言 | 1.uCOS只有线程的概念,uCOS的整个程序可以理解为一个进程,而其中的任务就可以理解为一个个线程,有自己的堆栈和局部变量,但没有单独的地址空间; | |
线程的优势 | 1.和进程相比,它是一种非常"节俭"的多任务操作方式。对进程而言,创建一个新的进程必须分配给它独立的地址空间,建立众多的数据表来维护它的代码段、堆栈段和数据段,这是一种"昂贵"的多任务工作方式。而运行于一个进程中的多个线程,它们彼此之间使用相同的地址空间,共享大部分数据,启动一个线程所花费的空间远远小于启动一个进程所花费的空间,而且,线程间彼此切换所需的时间也远远小于进程间切换所需要的时间; | |
区分进程、 用户线程、 内核线程 | | |
uCOS/Linux 状态区别 | | |