创建线程的三种方式

1.继承 Thread
public class MyThread extends Thread { 
    @Override
    public void run() {
        // TODO: 2019/2/28  
    }
}
2.实现 Runnable
public class MyThread implements Runnable {
    @Override
    public void run() {
        // TODO: 2019/2/28
    }
}
3.Callable 和 FutureTask
public class MyThread implements Callable {
    @Override
    public String call() throws Exception {
        return "hello world";
    }
}
class CallTest {
    public static void main(String[] args) throws ExecutionException, InterruptedException {
        FutureTask strTask = new FutureTask<>(new MyThread());
        strTask.run();
        if (strTask.isDone()) {
            System.out.println(strTask.get());
        }
    }
}

网上也有说法是四种创建线程的方式,第四种是线程池,但是我不太认同,所以只写了三种,因为线程池的方式只是启动,而非是创建。

你可能感兴趣的:(创建线程的三种方式)