Java 多线程编程--线程状态

    前两章讲解了线程同步的问题以及对火车票数量异常进行了分析。我相信,在阅读过程当中,没有多线程基础的同窗确定是懵逼的,这些锁锁锁究竟是个什么东西呀?继续往下阅读,你就会知道锁就不是个东西。java

线程的状态

    前面章节已经说了,要实现线程的同步,就得使用锁。在了解锁前,咱们先对线程的状态作一个认识。java的线程有六大状态:NEW(新建)、RUNNABLE(运行)、BLOCKED(阻塞)、TIMED_WAITING(超时等待)、WAITING(等待)、TERMINATED(终止、结束)多线程

NEW(新建): 建立一个线程对象,此刻该对象就处于新建状态线程

RUNNABLE(运行): 调用start()方法后,进入该状态。该状态分为两部分,一部分是就绪状态(ready),一部分是运行状态(running)。就绪状态是说线程得到了锁而且处于就绪队列中,此时线程在等待cpu的资源进行调用。运行状态是线程得到了cpu资源,已经开始运行cdn

BLOCKED(阻塞): 当线程运行到synchronized修饰的方法或者代码块进行锁的竞争,而没有得到锁时就会进去阻塞状态对象

TIMED_WAITING(超时等待): 调用wait(long timeout)方法,即在指定时间内等待其它线程发起信号队列

WAITING(等待): 调用()方法,若是其它线程不发起信号,那么该线程将一直等待资源

TERMINATED(终止、结束): 线程执行完毕同步

以上就是线程的六种状态。这六种状态中,某些状态的互相转换将在之后进行讲解。 it

有任何问题、意见请在下面留言或者邮箱联系-310103270@qq.com
相关文章
相关标签/搜索