多线程面试题及答案苏宁考前必备.docx

多线程面试题及答案苏宁考前必备

一、多线程基础概念与创建(10分)

1.在Java中,创建线程主要有哪三种方式?请简述其区别。

答案:

(1)继承Thread类:定义一个继承Thread类的子类,重写run()方法,创建子类对象并调用start()方法启动线程。

(2)实现Runnable接口:定义一个实现Runnable接口的类,实现run()方法,创建该类的对象,并将其作为参数传递给Thread类的构造器创建线程对象,再调用start()方法。

(3)实现Callable接口:定义一个实现Callable接口的类,实现call()方法(可返回结果),使用FutureTask类包装Callable对象,再以FutureTask作为参数传递给Thread类构造器创建线程对象。

区别:继承Thread类无法继承其他类,且方法共享;实现接口更灵活,支持多继承;Callable接口可以返回执行结果并抛出异常。

2.请列举Java线程的六种状态,并说明从“新建”状态到“运行”状态通常需要经过哪些步骤?

答案:

六种状态:新建(NEW)、可运行(RUNNABLE)、阻塞(BLOCKED)、等待(WAITING)、计时等待(TIMED_WAITING)、终止(TERMINATED)。

从“新建”到“运行”通常需要调用start()方法,该方法

文档评论(0)

1亿VIP精品文档

相关文档