具体了解几个概念
-
线程的状态
创建new 就绪
runnable 运行running 阻塞blocked
timewaiting waiting 消亡(dead)
线程创建后不会立即进入就绪状态,因为线程运行需要一些条件,比如内存资源,JVM区域划分(程序计数器,java栈,本地方法栈都是线程私有的),当线程进入就绪状态后不代表能立刻获得CPU的执行时间. -
上下文切换
cpu在一个时刻只能运行一个线程,当在运行一个线程的过程中转去运行另外一个线程,这个过程就叫做上下文切换。实现就需要记录程序计数器和CPU寄存器的状态。