面试题
一面
1.进程与线程的区别
根本区别 | 进程是操作系统资源分配的基本单位 | 线程是任务调度和执行的基本单位。 线程是进程的一部分,所以线程也被成为轻权进程或轻量级进程 |
开销方面 | 每个进程都有独立的代码和数据空间(程序上下文) 程序之间切换开销大 |
同一类线程的共享代码和数据空间 每个线程都有自己独立的运行栈和程序计数器(PC),线程之间切换开销小 |
所处环境 | 在操作系统中能同时运行多个进程(程序) | 在同一个进程(程序)中有多个线程同时执行 (通过CPU调度,在每个时间片中只有一个线程执行) |
内存分配 | 系统在运行的时候为每个进程分配不同的内存空间 | 而对线程而言,除了CPU外,系统不会为线程分配内存 (线程所使用的资源来自其所属进程的资源,线程组之间只能共享资源) |
包含关系 | 一个线程只能属于一个进程,但是一个进程可以拥有多个线程 没有线程的进程可以看作是单线程的 |
如果一个进程内有多个线程,则执行过程是由多个线程共同完成的 |