进程和线程

进程

进程是计算机中的程序关于数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位。程序是指令、数据及其组织形式的描述,进程是程序的实体。进程中可以容纳若干个线程。

线程

线程就是轻量级进程,是程序执行的最小单位。线程间的切换和调度的成本远远小于进程。

线程的生命周期

线程的所有状态都在 Thread 中的 State 枚举中定义

  1. public enum State {
  2. NEW,
  3. RUNNABLE,
  4. BLOCKED,
  5. WAITING,
  6. TIMED_WAITING,
  7. TERMINATED;
  8. }
  • NEW

表示刚刚创建的线程,还没开始执行。

  • RUNNABLE

当线程的 start() 方法调用时,线程开始执行,此时线程的状态就为RUNNABLE。

  • BLOCKED

如果线程在执行过程中遇到了 synchronized 同步块,就会进入BLOCKED阻塞状态。

  • WAITING

WAITING表示线程进入一个无时间限制的等待。

  • TIMED_WAITING

TIMED_WAITING会进行一个有时限的等待。

  • TERMINATED

TERMINATED表示线程执行完毕。