常见面试重点问题:进程和线程的区别与联系
一、进程关联的重要概念:
1、时间片:每个进程得到CPU执行的时间叫做时间片。
2、内核态和用户态:内核态表示操作系统作为最底层的软件拥有最高的权限,用户态指用户编写的程序。
二、线程(Thread) 与进程的概念(最本质)区别
1、进程 是操作系统分配资源的基本单位(最小单位)。
2、线程 是操作系统能够进行运算调度的最小单位。
三、进程和线程的区别与联系
(一)区别:
1、从属关系不同:线程属于进程,而进程不属于线程。
2、描述的侧重点不同:进程是系统分配资源的最小单位,而线程是系统调度的最小单位。
3、共享资源的方式不同:进程之间是不能共享资源的,线程之间可以共享资源(内存、打开的文件)
4、上下切换的速度不同:线程上下文切换的速度是比较快的,而进程的上下文切换比较慢。
5、操纵对象是不同的:进程是由操作系统操纵的,而线程是由程序员可以编码进行操纵的。
(二)联系:
1、线程被包含在进程之中,一个线程指的是进程中一个单一顺序的控制流,一个线程只能属于一个进程,而一个进程可以并发多个(至少有一个)线程,每条线程并行执行不同的任务。
2、资源分配给进程,同一进程的所有线程共享该进程的所有资源。 同一进程中的多个线程共享代码段(代码和常量),数据段(全局变量和静态变量),扩展段(堆存储)。但是每个线程拥有自己的栈段,栈段又叫运行时段,用来存放所有局部变量和临时变量。
3、线程在执行过程中,需要协作同步。不同进程的线程间要利用消息通信的办法实现同步。
4、在Unix System V 及SunOS中线程也被称为轻量进程,但轻量进程更多指内核线程,而把用户线程称为进程。