我们知道,线程是CPU调度的基本单位。
线程实现的3种方式:使用内核线程实现、使用用户线程实现和使用用户线程加轻量级进程混合实现。
线程调度,主要分为协同式线程调度和抢占式线程调度。
Java的线程调度主要是抢占式线程调度。
Java语言定义了5中线程状态:
新建:创建后尚未启动的线程处于这种状态。
运行:也饿就是对应于操作系统状态中的Running和Readdy。
无限期等待:这种状态不会被分配CPU执行时间,需要其他线程显示唤醒
限期等待:这种状态不会被分配CPU执行时间,不需要其他线程显示唤醒
阻塞状态:线程被阻塞
结束:已终止的线程状态。
下图是线程状态转化关系