从java内存区域上来说,线程在堆和方法区是线程共享的,本地方法栈、虚拟机栈和程序计数器是线程私有的。
1. 根本区别:进程是操作系统资源分配的基本单位,线程是处理器任务调度和执行的基本单位。内存中运行的每个.exe程序都是一个进程。
2. 资源开销:进程开销大,但是资源的管理和保护好;而线程是资源开销小,但是不利于资源的管理和保护。
3. 一个进程包含至少一个线程,也可以包含多个线程,各个进程是相互独立的,而线程不一定,同一个进程中的线程可能相互影响。
从java内存区域上来说,线程在堆和方法区是线程共享的,本地方法栈、虚拟机栈和程序计数器是线程私有的。
1. 根本区别:进程是操作系统资源分配的基本单位,线程是处理器任务调度和执行的基本单位。内存中运行的每个.exe程序都是一个进程。
2. 资源开销:进程开销大,但是资源的管理和保护好;而线程是资源开销小,但是不利于资源的管理和保护。
3. 一个进程包含至少一个线程,也可以包含多个线程,各个进程是相互独立的,而线程不一定,同一个进程中的线程可能相互影响。