面试的时候 面试官问过我 进程和线程的区别是什么 我:我是谁?我在哪?我该回答什么?
现在,我们来理下思路:
1.线程是程序执行的最小单位,而进程是操作系统分配资源的最小单位
2.线程可以看做轻量级的进程,同一类线程共享代码和数据空间;而进程都有独立的代码和数据空间
3.线程上下文切换比进程上下文切换要快得多
4.在操作系统中能同时运行多个进程(可以指某个程序);而在同一个进程(某个程序)中有多个线程同时执行(通过CPU调度,在每个时间片中只有一个线程执行)
5.操作系统中的每一个进程中都至少存在一个线程
理解的也只有这么多,欢迎大家来补充~
再来说一下僵尸进程哈
通俗一点说,僵尸进程就是指子进程先于父进程挂掉 但是父进程并没有正确回收子进程的资源而已
如果我们有时无法直接杀掉一个僵尸进程,可以找到其父进程将其杀掉,从而干掉该僵尸进程
总的来说,当系统不稳定时,或者代码不够完善,亦或是用户操作不当都可能产生僵尸进程,而僵尸进程是1个早已死亡的进程,但在进程表(processs table)中仍占了1个位置(slot)。由于进程表的容量是有限的,所以就占用了内存资源,影响系统性能。