天天看点

2020 进程和线程的区别(面试题)补充僵尸进程

面试的时候 面试官问过我 进程和线程的区别是什么 我:我是谁?我在哪?我该回答什么?

现在,我们来理下思路:

1.线程是程序执行的最小单位,而进程是操作系统分配资源的最小单位

2.线程可以看做轻量级的进程,同一类线程共享代码和数据空间;而进程都有独立的代码和数据空间

3.线程上下文切换比进程上下文切换要快得多

4.在操作系统中能同时运行多个进程(可以指某个程序);而在同一个进程(某个程序)中有多个线程同时执行(通过CPU调度,在每个时间片中只有一个线程执行)

5.操作系统中的每一个进程中都至少存在一个线程

理解的也只有这么多,欢迎大家来补充~

再来说一下僵尸进程哈

通俗一点说,僵尸进程就是指子进程先于父进程挂掉 但是父进程并没有正确回收子进程的资源而已

如果我们有时无法直接杀掉一个僵尸进程,可以找到其父进程将其杀掉,从而干掉该僵尸进程

总的来说,当系统不稳定时,或者代码不够完善,亦或是用户操作不当都可能产生僵尸进程,而僵尸进程是1个早已死亡的进程,但在进程表(processs table)中仍占了1个位置(slot)。由于进程表的容量是有限的,所以就占用了内存资源,影响系统性能。