天天看點

多線程——繼承Thread 類和實作Runnable 接口的差別1.繼承Thread 類2.Runnable 接口

  java中我們想要實作多線程常用的有兩種方法,繼承Thread 類和實作Runnable 接口,有經驗的程式員都會選擇實作Runnable接口 ,其主要原因有以下兩點:

  首先,java隻能單繼承,是以如果是采用繼承Thread的方法,那麼在以後進行代碼重構的時候可能會遇到問題,因為你無法繼承别的類了。

  其次,如果一個類繼承Thread,則不适合資源共享。但是如果實作了Runable接口的話,則很容易的實作資源共享。

  通過下面的執行個體可以清晰的看出兩種方式的差別所在。

  線程1和線程2之間的變量是不能共享的,每次count--都有各自的變量和結果。

  三個不同的線程之間的變量是共享的,每次count--得到的記過都是再上一個線程運作結果之上得到的。