一、进程:
进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。
二、线程
线程,有时被称为轻量级进程(Lightweight Process, LWP),是程序执行流的最小单元。一个标准的线程由线程 ID,当前指令指针(PC),寄存器集合和堆栈组成。另外,线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点 儿在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。
三、进程与线程的区别
1、从概念上
- 进程:一个程序对一个数据集的动态执行过程,是分配资源的基本单位。
- 线程:一个进程内的基本调度单位。
- 线程的划分尺度小于进程,一个进程包含一个或者更多的线程。进程是系统进行资源分配和调度的一个独立单位。
- 本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源。
2、从执行过程中来看
- 进程:拥有独立的内存单元,而多个线程共享内存,从而提高了应用程序的运行效率。
- 线程:每一个独立的线程,都有一个程序运行的入口、顺序执行序列、和程序的出口。
- 但是线程不能够独立的执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。
3、从逻辑角度来看:(重要区别)
- 多线程的意义在于一个应用程序中,有多个执行部分可以同时执行。但是,操作系统并没有将多个线程看做多个独立的应用,来实现进程的调度和管理及资源分配。