Java中Thread和Runnable的區別
建立新的執行執行緒有兩種方法。一種是宣告一個類作為Thread類的子類。此子類應該覆蓋Thread類的run方法。然後可以分配並啟動子類的例項。
建立執行緒的另一種方法是宣告一個實現Runnable介面的類。然後該類實現run方法。然後可以分配該類的例項,在建立Thread時將其作為引數傳遞,並啟動它。
每個執行緒都有一個名稱用於標識。多個執行緒可能具有相同的名稱。如果建立執行緒時未指定名稱,則會為其生成一個新名稱。
序號 | 關鍵 | Thread | Runnable |
---|---|---|---|
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(); } }
廣告