在Java中我們可以通過(guò)繼承runnable接口實(shí)現(xiàn)多線程,也可以通過(guò)繼承thread實(shí)現(xiàn)多線程。那么這兩種實(shí)現(xiàn)多線程的方法的區(qū)別是什么呢?看看粵嵌Java課程是怎么介紹的。
首先來(lái)看下兩種實(shí)現(xiàn)方式的代碼。
繼承thread類(lèi):
實(shí)現(xiàn)runnable接口:
運(yùn)行結(jié)果:
繼承thread類(lèi):
實(shí)現(xiàn)runnable接口:
主要區(qū)別:
1:java中不支持多繼承,一旦繼承了Thread類(lèi)就沒(méi)辦法繼承其他類(lèi),擴(kuò)展性不好。而一個(gè)類(lèi)可以實(shí)現(xiàn)多個(gè)接口,這樣擴(kuò)展性比較好。
2:實(shí)現(xiàn)runnable接口是線程資源共享的,在一個(gè)線程里聲明的變量,其他線程可見(jiàn)。對(duì)于同步操作比較容易。
而繼承Thread是線程資源非共享的。每個(gè)線程都有自己的空間,聲明自己的變量。如果想達(dá)到同步的目的,就需要用到同步鎖。
以上就是Java多線程的一些相關(guān)內(nèi)容,如果你不確定自己適不適合學(xué)Java,建議你來(lái)粵嵌培訓(xùn)試聽(tīng)一下Java課程。