Java中Thread和Runnable的區別


建立新的執行執行緒有兩種方法。一種是宣告一個類作為Thread類的子類。此子類應該覆蓋Thread類的run方法。然後可以分配並啟動子類的例項。

建立執行緒的另一種方法是宣告一個實現Runnable介面的類。然後該類實現run方法。然後可以分配該類的例項,在建立Thread時將其作為引數傳遞,並啟動它。

每個執行緒都有一個名稱用於標識。多個執行緒可能具有相同的名稱。如果建立執行緒時未指定名稱,則會為其生成一個新名稱。

序號關鍵ThreadRunnable
1
基礎
Thread是一個用於建立執行緒的類
Runnable是一個用於建立執行緒的功能介面
2
方法
它有多個方法,包括start()和run()
它只有一個抽象方法run()
3
 每個執行緒建立一個唯一的物件並與其關聯
多個執行緒共享相同的物件。
4
記憶體
需要更多記憶體
需要更少記憶體
5
限制
Java不允許多重繼承,因此在類擴充套件Thread類之後,它不能擴充套件任何其他類
如果一個類實現了Runnable介面,那麼你的類可以擴充套件另一個類。

Runnable示例

class RunnableExample implements Runnable{
   public void run(){
      System.out.println("Thread is running for Runnable Implementation");
   }
   public static void main(String args[]){
      RunnableExample runnable=new RunnableExample();
      Thread t1 =new Thread(runnable);
      t1.start();
   }
}

Thread示例

class ThreadExample extends Thread{
   public void run(){
      System.out.println("Thread is running");
   }
   public static void main(String args[]){
      ThreadExample t1=new ThreadExample ();
      t1.start();
   }
}

更新於:2019年11月18日

27K+ 瀏覽量

啟動你的職業生涯

完成課程獲得認證

開始學習
廣告