線程的三種種創建方式

// 繼承Thread
class Thread1 extends Thread {
    @Override
    public void run() {
        System.out.println("繼承Thread!");
    }
}
// 實現Runnable
class Thread2 implements Runnable {
    @Override
    public void run() {
        System.out.println("實現Runnable");
    }
}
// 實現Callable
class Thread3 implements Callable {
    @Override
    public Object call() throws Exception {
        return true;
    }
}
class Application{
	public static void main(String[] args) {
		// 方式1
        new Thread1().start();
        // 方式2
        new Thread(new Thread2()).start();
        // 方式3
        Callable thread3 = new Thread3();
        FutureTask futureTask = new FutureTask(thread3);
        new Thread(futureTask).start();
        try {
            Thread.sleep(10 * 1000);
            Object obj = futureTask.get(1000, TimeUnit.MILLISECONDS);
            System.out.println(obj);
        } catch (InterruptedException e) {
            // 線程中斷處理
        } catch (ExecutionException e) {
            // 線程執行異常處理
        } catch (TimeoutException e) {
            // 超過指定時間沒有接收到返回值異常處理
        }
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章