进程:运行中的应用程序称为进程,拥有系统资源(cpu、内存),是表示资源分配的基本单位,又是调度运行的基本单位

线程:进程中的一段代码,一个进程中可以有多段代码。本身不拥有资源(共享所在进程的资源),是进程中执行运算的最小单位,亦即执行处理机调度的基本单位


在java中,程序入口被自动创建为主线程,在主线程中可以创建多个子线程。




进程和线程的关系 
(1)一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程。 

(2)资源分配给进程,同一进程的所有线程共享该进程的所有资源。 
(3)处理机分给线程,即真正在处理机上运行的是线程。 
(4)线程在执行过程中,需要协作同步。不同进程的线程间要利用消息通信的办法实现同步。




两者之间的区别:

   1、是否占有资源问题

   2、创建或撤销一个进程所需要的开销比创建或撤销一个线程所需要的开销大。

   3、进程为重量级组件,线程为轻量级组件