Thread 與Runnable區別詳解

2021-06-08 04:33:57 字數 620 閱讀 5400

//使用thread實現執行緒不能實現資源共享

class mythread extends thread

public void run()

} }}

public class threaddemo02

}

//使用runnable實現執行緒可以實現資源共享

class mythread implements runnable

public void run()

} }}public class runnabledemo02

}

因為乙個執行緒只能啟動一次,通過thread實現執行緒時,執行緒和執行緒所要執行的任務是**在一起的。也就使得乙個任務只能啟動乙個執行緒,不同的執行緒執行的任務是不相同的,所以沒有必要,也不能讓兩個執行緒共享彼此任務中的資源。

乙個任務可以啟動多個執行緒,通過runnable方式實現的執行緒,實際是開闢乙個執行緒,將任務傳遞進去,由此執行緒執行。可以例項化多個 thread物件,將同一任務傳遞進去,也就是乙個任務可以啟動多個執行緒來執行它。這些執行緒執行的是同乙個任務,所以他們的資源是共享。

兩種不同的執行緒實現方式本身就決定了其是否能進行資源共享。

執行緒Thread與Runnable實現

當new 乙個thread的時候,就是在主線程的基礎上再開乙個子執行緒,cpu一會兒給主線程用,一會兒給子執行緒用,所以多執行緒會降低工作效率 1 thread 自己實現自己的run方法 public static voidmain string args throwsinterruptedexce...

Thread與Runnable的關係

public class threaddemo start 對於上面的這段 它的執行結果是 thread的run 方法 但這是為什麼呢?在看下面這段 public class threaddemo start 上述 的執行結果是 thread的run 方法 runnable的run方法 這就不得不說...

Thread與Runnable的區別

避免了單繼承的侷限性 a.乙個類只能繼承乙個類 乙個人只能有乙個親爹 類繼承了thread類就不能繼承其他的類 b.實現了runnable介面,還可以繼承其他的類,實現其他的介面 增強了程式的擴充套件性,降低了程式的耦合性 解耦 a.實現runnable介面的方式,把設定執行緒任務和開啟新執行緒進行...