进程与线程
(1)进程
程序由指令和数据组成,但这些指令要运行,数据要读写,就必须将指令加载至CPU,数据加载至内存。在指令运行过程中还需要用到磁盘、网络等设备。进程就是用来加载指令、管理内存、管理IO的。当一个程序被运行,从磁盘加载这个程序的代码至内存,就开启了一个进程。
(2)线程
一个进程之内可以有一到多个线程。一个线程就是一个指令流,将指令流中的一条条指令按一定的顺序交给CPU。Java中,线程作为最小的调度单位,进程作为资源分配的最小单位。
(3)二者对比
进程基本上相互独立,而线程存在于进程内,是进程的一个子集。
进程拥有的共享资源,如内部空间等,供内部的线程共享。
进程间的通信较为复杂。