1、线程的六个状态(不同的地方有不同的状态数量和名称,但是应该都是大同小异):
新创建(New);可运行(Runnable);被阻塞(blocked);等待(Waiting);计时等待(Timed waiting);被终止(Terminated)。
1)当使用new 操作符创建一个新线程时,该线程还没有开始运行,在运行之前还有一些基础工作需要做(可能),因此处于新创建状态;
2)一旦线程调用了start方法,线程就处于可运行状态中。但是需要注意的是,一个可运行的线程可能正在运行也可能没有运行,这一切都取决于操作系统;
3)当线程处于被阻塞、等待和计时等待状态时,线程暂时停止活动,不运行任何代码。如何达到非运行状态是区分这三个状态的标志。具体细节比较复杂,暂且不表。
4)线程有两个原因之一被终止:第一个是因为run方法正常退出,而自然死亡;第二个是因为一个没有被捕获的异常终止了run方法而意外死亡。
2、关于线程与CPU的关系,有两个表示说法,一个是CPU的执行资格,这意味着该线程可以被CPU处理,在处理队列中排队;第二是CPU的执行权,表示正在被CPU处理。对于处于运行状态的线程,其具备着CPU的执行资格也具备CPU的执行权,处于冻结状态的线程不具备CPU的执行资格也不具备CPU的执行权。
时间: 2024-10-01 03:24:46