上篇博客开始,我们接触了一些有关Java多线程的基本概念。这篇博客开始,我们就正式的进入了Java多线程的实战演练了。实战演练不仅仅是贴代码,也会涉及到相关概念和术语的讲解。

线程的状态

程的状态分为:新生,可运行,运行,阻塞,死亡5个状态。如下图:

移动开发培训,Android培训,安卓培训,手机开发培训,手机维修培训,手机软件培训

状态说明

  • 新生(new):线程对象刚创建,但尚未启动。

  • 可运行(Runnable):线程创建完毕,并调用了start()方法,虽然调用了start(),但是并不一定意味着线程会立即执行,还需要CPU的时间调度。线程此时的状态就是可运行状态。

  • 运行:线程等到了CPU的时间调度,此时线程状态转为运行状态。

  • 阻塞(Blocked):线程由于某种原因被阻碍了,但是此时线程还处于可运行状态。调度机制可以简单的跳过它,不给它分配任何CPU时间。

其他状态比较简单,阻塞状态是其中比较有意思的。造成线程阻塞的原因有:

  1. 调用sleep(毫秒数),使线程进入"睡眠"状态。在规定的毫秒数内,线程不会被执行,使用sleep()使线程进入睡眠状态,

    网友评论