进程
进程就是操作系统中的一个正在执行的程序,它由操作系统来进行资源分配和调度,例如在Java中使用 jps 命令可以查看指定服务器中的JVM进程,jps中的 p 含义为 process,就是进程的意思。
线程
线程属于进程的一个子集,在一个进程中,可能会有多个线程。在Java中可以使用 jstack 命令来分析某个进程中的线程栈情况。
进程和线程的区别
1、不同的进程使用不同的内存空间,而所有线程会共享一份相同的内存空间。每个线程都拥有单独的栈内存用来存储本地数据。
2、线程上下文的切换比进程上下文切换要快很多,因为进程切换时,涉及到当前进程的CPU环境的保存和新的被调度运行进程的CPU环境的设置,而线程切换仅需要保存和设置少量的寄存器内容,不涉及存储管理方面的操作。