进程上下文切换与和线程上下文切换有什么不同?

  1. 首先,需要搞明白什么是上下文切换?
    上下文切换就是从当前执行任务切换到另一个任务执行的过程。但是,为了确保下次能从正确的位置继续执行,在切换之前,会保存上一个任务的状态。

  2. 然后,需要明白进程与线程的区别?(网上很多,这里简单说明)
    1).线程是进程的一部分。进程是表示资源分配的基本单位,又是调度运行的基本单位,是程序执行的一个实例; 线程是进程中执行运算的最小单位,即执行处理机调度的基本单位,是进程中的一个执行流。
    2).内存空间不同。每一个进程拥有自己独立的内存空间,而线程共享进程的内存空间。

  3. 所以,进程上下文切换与线程上下文切换最主要的区别就是线程的切换虚拟空间内存是相同的(因为都是属于自己的进程),但是,进程切换的虚拟空间内存则是不同的。

同时,这两种上下文切换的处理都是通过操作系统内核来完成的。内核的这种切换过程伴随的最显著的性能损耗是将寄存器中的内容切换出。

线程上下文切换比进程上下文切换快的多。

你可能感兴趣的:(操作系统,操作系统,JVM)