线程的状态一共有6种,在任意时刻线程的状态只能是其中的一种。正确理解线程的状态有助于我们更容易理解线程。具体的线程状态如下:
这六种状态是可以相互进行转化的,下面是具体的转化过程:
可以看到,线程创建之后,调用start()方法开始运行。当线程执行wait()方法之后,线程进入等待状态。进入等待状态的线程需要依靠其他线程的通知才能够返回到运行状态,而超时等待状态相当于在等待状态基础上增加了时间的限制,就是说,超过了设定的时间限制就会返回到运行状态。当线程调用同步方法的时候,在没有获取到锁的情况下,线程会进入阻塞状态。线程在执行Runnable的run()方法之后会进入到终止状态。