这一模块的内容,都是基础知识,对于测试而言,非必须掌握的内容,但你完全不了解的话,显得基础不够扎实。
因此,无需投入太多时间深入学习,很多人都经不起细问。
但需要有所了解,就是把自己理解的几个点抛出来,点到为止。
面试官追问细节,可以说目前只了解这么多,下来后补充学习。
请描述下进程与线程的区别?
我简单说一下进程与线程的区别,主要体现在以下的方面:
-
进程(Process)是系统进行资源分配和调度的基本单位;而线程(Thread)是CPU调度和分派的基本单位;
-
它们两个之间的关联是,线程依赖于进程而存在,一个进程至少有一个线程;
-
进程有自己的独立地址空间,而线程则共享所属进程的地址空间;
-
进程是拥有系统资源的一个独立单位,而线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),和其他线程共享本进程的相关资源如内存、I/O、CPU等;
-
在切换开销上,进程的切换开销远大于线程;在进程切换时,涉及到整个当前CPU环境的保存以及对新的CPU环境进行重新配置,而线程切换只需保存和设置少量的寄存器,并不涉及存储器管理方面的操作;
-
在通信的便捷性上,线程之间的通信更方便,同一进程下的线程共享全局变量等数据,而进程之间的通信需要以进程间通信(IPC)的方式进行;
-
在健壮性上,多进程比多线程更健壮;线程程序只要有一个线程崩溃,整个程序就崩溃了,但多进程程序中一个进程崩溃并不会对其它进程造成影响,因为进程有自己的独立地址空间
关于多线程与多进程的区别,以及应用场景,可通过以下文章深入学习。
https://blog.csdn.net/weixin_49786076/article/details/113005497
使用线程池的好处
-
降低资源消耗:主要是通过重复利用已创建的线程降低线程创建和销毁造成的消耗。
-
提高响应速度:当任务到达时,任务可以不需要等到线程创建就能立即执行。
-
提高线程的可管理性:线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调优和监控。
进程有哪些状态?
进程包括以下3种状态:
-
就绪状态:指的是进程已获得除处理机以外的所需资源,等待分配处理机资源
-
运行状态:指的是占用处理机资源运行中,此状态进程数 <= CPU数
-
阻塞状态:指的是进程等待某种条件,在条件满足之前无法执行
剩余内容,请通过下方获取方式购买后跳转阅读~
获取方式
本专栏内容为付费内容,你可以按照实际需求下单购买,谢谢你的支持~