定義並啓動線程

每一個線程都與一個Thread實例相關聯,以下兩種方法可以在應用程序中創建並運行一個線程。

  • 實現Runnable接口

public class MyRunnable implements Runnable{   
    public MyRunnable() {
        System.out.println("MyRunnable's constructor!");
    }

    @Override
    public void run() {
        System.out.println("I'mrunning");
    }
   
    public static voidmain(String[] args) {
        MyRunnable myRunnable = new MyRunnable();
        Thread t = new Thread(myRunnable);
        t.start();
    }
}
  • 繼承Thread

public class MyThread extends Thread {   
   public MyThread() {
      System.out.println("MyThread's constructor!");
   }

   @Override
   public void run() {
      System.out.println("I'mrunning");
   }
   
   public static voidmain(String[] args) {
      MyThread t = new MyThread();
      t.start();
   }
}


以上兩種方法哪種更好呢?

第一種方式使用了一個Runnable實例,第二種方式則要求繼承Thread類。雖然第二種方式看起來使用更加簡單,但是卻限制了用戶類必須繼承Thread。第一種方式將Runnable任務與運行Runnable任務的Thread對象分離開,更加靈活,也能更好地與高層的線程管理API結合使用。因此推薦使用第一種方法。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章