1) 新建
当用new关键字创建一个线程时,还没调用start 就是新建状态。
2) 就绪
调用了 start 方法之后,线程就进入了就绪阶段。此时,线程不会立即执行run方法,需要等待获取CPU资源。
start()方法的作用是:启动一个分支线程,在JVM中开辟一个新的栈空间
3) 运行
当线程获得CPU时间片后,就会进入运行状态,开始执行run方法。
当之前占有的CPU时间片用完之后,会重新回到就绪状态继续抢夺CPU时间片,当再次抢到CPU时间之后,会重新进入run方法接着上一次的代码继续往下执行。
4) 阻塞
当遇到以下几种情况,线程会从运行状态进入到阻塞状态。
调用sleep方法,使线程睡眠。
调用wait方法,使线程进入等待。
当线程去获取同步锁的时候,锁正在被其他线程持有。
调用阻塞式IO方法时会导致线程阻塞。
调用suspend方法,挂起线程,也会造成阻塞。
标签:状态,调用,run,start,线程,方法,CPU From: https://blog.51cto.com/u_16235022/7203051