Java多线程_面试笔试真题

面试笔试真题:

  1. 实现多线程的方法有哪几种?
    答案:三种
  2. 实现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();
    }
}
  1. 继承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();
    }
}
  1. 实现Callable接口,重写call()方法。特点如下:
    ①Callable可以在任务结束后提供一个返回值,Runnable无法提供这个功能。
    ②Callable中的call()方法可以抛出异常,而Runnable的run()方法不能抛出异常。
    ③运行Callable可以拿到一个Future对象,Future对象表示异步计算的结果,他提供了检查计算机是否完成的方法。
  2. 三种方式中,哪种方式比较好
    一般推荐实现Runnable接口,因为Thread类定义了很多方法可以被派生类实现或重写,但是只有run()方法必须被重写,在run方法中实现这个线程的主要功能,这也是实现Runnable接口的同样的方法。一般一个类只有在被需要加强的时候才去继承它。 这个类还可以去继承别的类。
  3. 多线程同步有几种实现方法?
    synchronized关键字
    未完待续

你可能感兴趣的:(Java多线程_面试笔试真题)