java實現(xiàn)多線程兩種方法的比較
先看一下java線程運行時各個階段的運行狀態(tài)
java實現(xiàn)多線程有兩種方法
1、繼承Thread類
2、實現(xiàn)Runnable接口
這兩種方法的共同點:
不論用哪種方法,都必須用Thread(如果是Thead子類就用它本身)產(chǎn)生線程,然后再調(diào)用start()方法。
兩種方法的不同點:
1、繼承Thread類有一個缺點就是單繼承,而實現(xiàn)Runnable接口則彌補了它的缺點,可以實現(xiàn)多繼承
2、繼承Thread類必須如果產(chǎn)生Runnable實例對象,就必須產(chǎn)生多個Runnable實例對象,然后再用Thread產(chǎn)生多個線程;而實現(xiàn)Runnable接口,只需要建立一個實現(xiàn)這個類的實例,然后用這一個實例對象產(chǎn)生多個線程。即實現(xiàn)了資源的共享性
基于以上兩點所以建議用第二種方法
下面用例子來做說明
程序1:





















































程序的運行結(jié)果是:
這是繼承了Thread類,第一種方法產(chǎn)生多個Runnable實例對象,然后用Thread產(chǎn)生多個線程
第二種方法,因為這個類已經(jīng)繼承了Thread類,所以就可以直接利用它本身產(chǎn)生多個線程
程序2:






























程序運行結(jié)果:
這個程序是實現(xiàn)Runnable了,產(chǎn)生一類的實例對象,然后用Thread產(chǎn)生多個線程。