Java多线程_面试笔试真题
2017-06-13 本文已影响0人
暖熊熊
面试笔试真题:
- 实现多线程的方法有哪几种?
答案:三种 - 实现Runnable接口,并实现该接口的run()方法。主要步骤如下:
①自定义类并实现Runnable接口,实现run()方法。
②创建Thread对象,用实现Runnable接口的对象作为参数实例化该Thread对象。
③调用Thread的start()方法
代码如下:
public class MyThread implements Runnable {
public void run() {
System.out.println("我创建的线程");
}
public static void main(String[] args) {
MyThread m = new MyThread();
Thread t = new Thread(m);
t.start();
}
}
- 继承Thread类,重写run方法
public class MyThread extends Thread {
public void run() {
System.out.println("我创建的线程");
}
public static void main(String[] args) {
MyThread t = new MyThread();
t.start();
}
}
- 实现Callable接口,重写call()方法。特点如下:
①Callable可以在任务结束后提供一个返回值,Runnable无法提供这个功能。
②Callable中的call()方法可以抛出异常,而Runnable的run()方法不能抛出异常。
③运行Callable可以拿到一个Future对象,Future对象表示异步计算的结果,他提供了检查计算机是否完成的方法。 - 三种方式中,哪种方式比较好
一般推荐实现Runnable接口,因为Thread类定义了很多方法可以被派生类实现或重写,但是只有run()方法必须被重写,在run方法中实现这个线程的主要功能,这也是实现Runnable接口的同样的方法。一般一个类只有在被需要加强的时候才去继承它。 这个类还可以去继承别的类。 - 多线程同步有几种实现方法?
synchronized关键字
未完待续