ava线程有哪几种状态,分别代表什么意思?

  线程的状态有以下几种:

NEW:新建、初始化
RUNNABLE:可运行状态
BLOCKED:阻塞中
WAITING:无限等待中
TIMED_WAITING:有时间限制的等待中
TERMINATED:结束、死亡状态
第一种状态:NEW,我们可以理解为线程处于新建、等待启动的状态,这种状态下,线程就仅仅是一个对象
第二种状态:RUNNABLE,中文意思是可运行的,意思就是说我们这个线程可以被CPU执行了,但CPU未必就正在执行。当线程调用start方法,就意味着线程进入了RUNNABLE状态(但不仅限于调用start方法,线程在BLOCKED、WAIT,TIMED_WAITING状态下都可以变为RUNNABLE状态)
第三种状态:BLOCKED,中文翻译过来为阻塞的意思,只要线程去获取别的线程正在使用的资源,就会进入BLOCKED状态
第四种状态:WAITING,线程处于无限等待中,等待什么?等待共享的资源允许被使用或等待其它线程执行完毕。当我们调用wait方法notify方法可以进入运行状态,线程则进入了WAITING状态,请注意,wait和notify都是Object下的方法
第五种状态:TIMED_WAITING,非无限等待,而是有确切的等待时间,当线程等待了指定的时间,会回归到RUNNABLE或BLOCKED状态。当我们调用sleep(long millis)或者wait(long timeout)后进入TIMED_WAITING
第六种状态:TERMINATED,终止、结束,你还可以生动的理解为“死亡”,当线程执行完毕,则会进入该状态

你可能感兴趣的:(线程)