建立執行緒的三種方式

weixin_33807284發表於2019-02-28
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<String> {
    @Override
    public String call() throws Exception {
        return "hello world";
    }
}
class CallTest {
    public static void main(String[] args) throws ExecutionException, InterruptedException {
        FutureTask<String> strTask = new FutureTask<>(new MyThread());
        strTask.run();
        if (strTask.isDone()) {
            System.out.println(strTask.get());
        }
    }
}

網上也有說法是四種建立執行緒的方式,第四種是執行緒池,但是我不太認同,所以只寫了三種,因為執行緒池的方式只是啟動,而非是建立。

相關文章