Java中的线程有5中状态,如下:
1.新建态:新建的尚未启动的线程;
2.运行态:正在执行的线程或正在等待cpu为其分配执行时间;
3.无限期等待态:此时的线程不会被cpu分配执行时间,需要被其他线程显示的唤醒。进入这种状态有以下几种:
(1)没有设置Timeout参数的Object.wait()方法;
(2)没有设置Timeout参数的Tread.join()方法;
(3)LockSupport.park()方法;
4.限期等待态:此时线程同样不会被分配cpu执行时间,但他们是由系统自动的唤醒。进入此状态的方法有:
(1)设置Timeout参数的Object.wait()方法;
(2)设置Timeout参数的Tread.join()方法;
(3)Tread.sleep()方法;
(4)LockSupport.parkNanos()方法;
(5)LockSupport.parkUntil()方法;
5.阻塞态:线程被阻塞。此时线程在等待获取到一个排它锁;
6.结束态:线程已经被终止;