Java面试题(十七) 在多线程中获得线程的3种方式

一. 继承Thread类

class MyThread extends Thread {

    @Override
    public void run() {
        super.run();
    }
}

二. 实现Runnable接口

class MyThread2 implements Runnable {

    @Override
    public void run() {

    }
}

三. 实现Callable接口

class MyThread3 implements Callable<Integer> {

    @Override
    public Integer call() throws Exception {
        System.out.println(Thread.currentThread().getName() + " come in MyThread3...");
        return 1024;
    }
}

调用一下第三种方式

public static void main(String[] args) throws Exception {

        FutureTask<Integer> futureTask = new FutureTask<>(new MyThread3());

        Thread t1 = new Thread(futureTask, "T1");
        t1.start();

        System.out.println("...result: " + futureTask.get());
    }

运行结果
在这里插入图片描述

总结:实现Runnable接口的方式不带返回值,实现Callable接口的方式带返回值。

猜你喜欢

转载自blog.csdn.net/w_x_A__l__l/article/details/106936101