java中為什么要有Runnable接口的出現?

iverson3 9年前發布 | 24K 次閱讀 多線程 Java開發 Java

1通過繼承Thread類的方式,可以完成多線程的建立。但是這種方式有一個局限性,如果一個類已經有了自己的父類,就不可以繼承Thread類,因為java單繼承的局限性。

可是該類中的還有部分代碼需要被多個線程同時執行。這時怎么辦呢?

只有對該類進行額外的功能擴展,java就提供了一個接口Runnable。這個接口中定義了run方法,其實run方法的定義就是為了存儲多線程要運行的代碼。

所以,通常創建線程都用第二種方式。

因為實現Runnable接口可以避免單繼承的局限性。

2其實是將不同類中需要被多線程執行的代碼進行抽取。將多線程要運行的代碼的位置單獨定義到接口中。為其他類進行功能擴展提供了前提。

所以Thread類在描述線程時,內部定義的run方法,也來自于Runnable接口。


實現Runnable接口可以避免單繼承的局限性。而且,繼承Thread,是可以對Thread類中的方法,進行子類復寫的。但是不需要做這個復寫動作的話,只為定義線程代碼存放位置,實現Runnable接口更方便一些。所以Runnable接口將線程要執行的任務封裝成了對象

 本文由用戶 iverson3 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!