进程是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础,是线程的容器。
程序是指令、数据及其组织形式的描述,进程是程序的实体。
在Windows系统中,任务管理器中可以看到各个进程。
线程是轻量级进程,是程序执行的最小单位,使用多线程而不是多进程去进行并发程序设计,因为线程间的切换和调度成本远远小于进程。
线程有如下集中状态:
NEW,RUNNABLE,BLOCKED,WAITING,TIMED_WAITING,TERMINATED
NEW状态表示刚刚创建线程,还没开始执行。
RUNNABLE状态,线程新建之后,调用start()方法就进入这个状态,表示线程需要的资源都准备好了。
BLOCKED阻塞状态,当线程遇到synchronize同步块时,进入阻塞状态,线程会暂停执行,知道获得请求锁为止。
WAITING等待是进入一个无时间限制的等待,等待一些特殊事件,比如wait()方法等待的线程在等待notify(),而join()方法等待的是目标线程的终止。
TIMED_WAITING会进行一个有时限的等待。
TERMINATED表示结束,线程执行完毕。