进程与线程的定义和简单比喻
首先简单介绍一下进程与线程的定义。
进程
进程是并发执行的程序在执行过程中分配和管理资源的基本单位,是一个动态概念,竞争计算机系统资源的基本单位。
简单的说,在手机或电脑开启一个应用就算是打开一个进程,如下图:打开一个WSP Office.exe,打开任务管理器就可以直观的了解进程的定义。
这里显示了所有当前正在运行的进程,包括应用程序、后台服务等,那些隐藏在系统底层深处运行的病毒程序或木马程序都可以在这里找到。
注:任务管理器中:Windows 8及以后版本把“进程”与“应用程序”合并,称之为“进程”。
线程
线程是进程的一个执行单元,是进程内科调度实体。比进程更小的独立运行的基本单位。线程也被称为轻量级进程。
按我的理解就是:如果要运行一个进程,需要多个线程来一起配合才能正常运行,如下图:点开任务管理器WPS下的向右箭头,就可以看到以下的图示,
下面罗列的可能是运行WPS的部分子线程(我也不知道是不是全部线程,如果有错欢迎大家在评论区指正)。
进程有单线程多线程的区别,这里就不一一罗列。老师上课讲的暂时不太明白(JVM 角度说进程和线程之间的关系),需要进一步理解的可以去文章尾部查看参考文章
进程与线程的区别
类别 | 区别 |
地址空间 | 线程共享本进程的地址空间,而进程之间是独立的地址空间。 |
资源 | 线程共享本进程的资源如内存、I/O、cpu等,不利于资源的管理和保护,而进程之间的资源是独立的,能很好的进行资源管理和保护。 |
健壮性 | 多进程要比多线程健壮,一个进程崩溃后,在保护模式下不会对其他进程产生影响,但是一个线程崩溃整个进程都死掉。 |
执行过程 | 多进程要比多线程健壮,一个进程崩溃后,在保护模式下不会对其他进程产生影响,但是一个线程崩溃整个进程都死掉。 |
可并发性 | 两者均可并发执行。 |
切换时 | 进程切换时,消耗的资源大,效率高。所以涉及到频繁的切换时,使用线程要好于进程。同样如果要求同时进行并且又要共享某些变量的并发操作,只能用线程不能用进程。 |
其他 | 线程是处理器调度的基本单位,但是进程不是。 |
进程和线程的根本区别在于隔离性,互不信任的多个任务应当放到多个进程中实现强隔离。但这样会对性能带来挑战,
所以前沿的研究在探索高效的、细粒度的进程间隔离技术,比如这个论文https://www.usenix.org/conference/atc20/presentation/ren
参考文章: 进程和线程的区别(超详细)_ThinkWon的博客-CSDN博客_进程和线程
标签:管理器,区别,线程,进程,多线程,资源 From: https://www.cnblogs.com/dzxdwybk/p/16820074.html