2013-04-04|2140阅|作者:小蜜锋|举报 摘要: 1. 创建状态(new Thread) 2. 可运行状态( Runnable ) 3. 不可运行状态(Not Runnable) 4. 死亡状态(Dead)
1. 创建状态(new
Thread)
执行下列语句时,线程就处于创建状态:
Thread myThread = new MyThreadClass(
);
当一个线程处于创建状态时,它仅仅是一个空的线程对象,系统不为它分配资源。
2. 可运行状态( Runnable
)
Thread myThread = new MyThreadClass( );
myThread.start(
);
当一个线程处于可运行状态时,系统为这个线程分配了它需的系统资源,安排其运行并调用线程运行方法,这样就使得该线程处于可运行( Runnable
)状态。需要注意的是这一状态并不是运行中状态(Running
),因为线程也许实际上并未真正运行。由于很多计算机都是单处理器的,所以要在同一时刻运行所有的处于可运行状态的线程是不可能的,Java的运行系统必须实现调度来保证这些线程共享处理器。
3.
不可运行状态(Not Runnable)
进入不可运行状态的原因有如下几条:
1) 调用了sleep()方法;
2)
调用了suspend()方法; 3)
为等候一个条件变量,线程调用wait()方法;
4)
输入输出流中发生线程阻塞;
不可运行状态也称为阻塞状态(Blocked)。因为某种原因(输入/输出、等待消息或其它阻塞情况),系统不能执行线程的状态。这时即使处理器空闲,也不能执行该线程。
4.
死亡状态(Dead)
线程的终止一般可通过两种方法实现:自然撤消(线程执行完)或是被停止(调用stop()方法)。目前不推荐通过调用stop()来终止线程的执行,而是让线程执行完。