进程和线程的区别
本质区别:进程是操作系统资源分配的基本单位,线程是处理器任务调度和执行的基本单位。
包含关系:一个进程至少有一个线程,线程是进程的一部分,所以线程也叫轻量级进程。
资源开销:每个进程都有独立的地址空间,进程之间的切换有很大的开销,同一个进程里的线程共享进程地址空间,线程有自己独立的运行栈和程序计数器,线程之间的切换开销小。
影响关系:一个进程崩溃后,在保护模式下不影响其他进程,但是一个线程崩溃可能导致整个进程被操作系统杀掉,所以多进程比多线程健壮。
所谓的进程上下文,就是一个进程在执行的时候,CPU的所有寄存器中的值、进程的状态以及堆栈上的内容,当内核需要切换到另一个进程时,它 需要保存当前进程的所有状态,即保存当前进程的进程上下文,以便再次执行该进程时,能够恢复切换时的状态,继续执行。
进程的地址空间:
从上面的讨论中我们知道,到目前为止,所属线程的栈区、程序计数器、栈指针以及函数运行使用的寄存器是线程私有的。以上这些信息有一个统一的名字,就是线程上下文,thread context。
这其实就是进程地址空间的样子,也就是说线程共享进程地址空间中除线程上下文信息中的所有内容,意思就是说线程可以直接读取这些内容。
深度剖析Java的volatile实现原理,再也不怕面试官问了
https://blog.youkuaiyun.com/m0_71777195/article/details/127182156
3397

被折叠的 条评论
为什么被折叠?



