进程和线程
进程
进程是计算机中的程序关于数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位。程序是指令、数据及其组织形式的描述,进程是程序的实体。进程中可以容纳若干个线程。
线程
线程就是轻量级进程,是程序执行的最小单位。线程间的切换和调度的成本远远小于进程。
线程的生命周期
线程的所有状态都在 Thread 中的 State 枚举中定义
public enum State {
NEW,
RUNNABLE,
BLOCKED,
WAITING,
TIMED_WAITING,
TERMINATED;
}
- NEW
表示刚刚创建的线程,还没开始执行。
- RUNNABLE
当线程的 start() 方法调用时,线程开始执行,此时线程的状态就为RUNNABLE。
- BLOCKED
如果线程在执行过程中遇到了 synchronized 同步块,就会进入BLOCKED阻塞状态。
- WAITING
WAITING表示线程进入一个无时间限制的等待。
- TIMED_WAITING
TIMED_WAITING会进行一个有时限的等待。
- TERMINATED
TERMINATED表示线程执行完毕。