面试题13(一个具有生命的线程有哪些状态)

考点:考察求职者对线程的理解 出现频率:★★★ 【面试题解析】线程的状态表示线程在某时间段内进行的活动和将要进行的任务程有创建、就绪、运行、阻塞、死亡5种状态。一个具有生命的线程,总是处于以下5状态之一。 1.创建状态

实例化 Thread对象,但没有调用 start()方法时的状态。

例如:

ThreadTest tt = new ThreadTest (); 或者

Thread t = new thread ( tt);

此时虽然创建了 Thread对象,但是它们暂时不能通过 isAlive ( )测试。

2.就绪状态 线程有资格运行,但调度程序还没有把它选为运行线程时所处的状态。此时,线程具备了运行的条件,一旦被选中,马上就能运行。

线程创建后,调用了 start( )方法,线程不处于运行状态,但能通过 isAlive( )测试。而且在线程运行之后,或者从被阻塞、等待或者睡眠状态回来之后,线程首先进入就绪状态 3.运行状态

从就绪状态池(注意不是队列,是池)中被选择为当前执行的线程所处的状态。

4.等待、阻塞或者睡眠状态 线程依然是活的,但是缺少运行的条件,一旦具备了条件,就可以转为就绪状态(不能直接转为运行状态)。另外, suspend()和stop( )方法已经被废弃了,比较危险,不要再使了。

5.死亡状态

一个线程的run()方法运行结束,那么该线程完成其使命,它的栈结构将解散,也就是死亡了。但是它仍然是一个 Thread对象,仍可以被引用,这一点与其他对象一样,而且被引用的对象也不会被垃圾回收器回收。 一旦线程死去,它就永远不能重新启动了,也就是说,不能再用 start()方法让它运行。

下面的示例会抛出Ⅲ legalThreadStateException异常,代码如下: t.start( ) ; t.start( ) ;

这是一种错误的用法。

参考答案: 一个线程一般有如下5个状态:创建状态、就绪状态、运行状态、等待(阻塞或睡眠)状态和死亡状态。

原文发布于微信公众号 - java学习(javaxxf)

原文发表时间:2017-10-14

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏用户2442861的专栏

高性能网络编程4--TCP连接的关闭

TCP连接的关闭有两个方法close和shutdown,这篇文章将尽量精简的说明它们分别做了些什么。

12320
来自专栏HansBug's Lab

【前端】Ubuntu16下nodejs+npm+vue环境配置

笔者最近在学习vue.js,不过一直都是在runoob上面各种尝试。今天笔者在本机(Ubuntu16.04)尝试部署了nodejs+npm+vue开发环境,接下...

38450
来自专栏张尧博客

su和sudo之间的区别以及如何在Linux中配置sudo

55860
来自专栏日常工作总结

Redis运维总结

【持久化设置】 对于redis,有两种持久化方式:rdb和aof rdb:后台定期生成一个dump文件,保存当前redis内存中所有的数据 aof:类似日志,记...

25140
来自专栏haifeiWu与他朋友们的专栏

测试环境服务器硬盘塞满问题排查

某天下午测试环境服务器出现tab无法补全命令,给出的提示大概意思就是说,无可用空间无法创建临时文件,不过这次跟上次出现的问题比较像,上次服务器出现的问题,因此楼...

14410
来自专栏从零开始学自动化测试

Selenium+python自动化21-TXT数据参数化

前言 在17篇我们讲了excel数据的参数化,有人问了txt数据的参数化该怎么办呢,下面小编为你带你txt数据参数化的讲解 一、以百度搜索为例,自动搜索五次不...

36950
来自专栏张戈的专栏

启用WP Super Cache纯代码版本之后的一些优化措施

张戈博客在上个月 28 号启用了 WP Super Cache 代码版,几天下来,虽然小问题不断,但是总体感觉非常不错!不管是前台还是后台,速度都有质的提升,着...

38170
来自专栏醒者呆

程序员必备课程——网络编程入门

关键字:互联网协议,网络分层,socket,TCP/IP协议,jdk源码,多线程,线程池,ExecutorService 本文的主要目的是面向程序员,所以...

58960
来自专栏LanceToBigData

linux(九)之网络基础

一、ping命令   1.1、作用      用于检测主机。执行ping指令会使用ICMP传输协议,发出要求回应的信息,若远端主机的网络功能没有问题,就...

23970
来自专栏行者悟空

CentOS Linux安装nginx及负载均衡的配置

14230

扫码关注云+社区

领取腾讯云代金券