更新時間:2020-04-29 13:59:59 來源:動力節(jié)點 瀏覽2441次
java多線程實現(xiàn)方式主要有三種:繼承Thread類、實現(xiàn)Runable接口、使用ExecutorService、CallBack、Future實現(xiàn)有返回結(jié)果的多線程。其中前兩種現(xiàn)成執(zhí)行完是沒有返回值的,第三種才有返回值。下面詳細(xì)看看三種實現(xiàn)方式:
1.繼承Thread類實現(xiàn)多線程:
其實,繼承Thread類的方法實現(xiàn)多線程,但其本質(zhì)也是實現(xiàn)了Runable接口的一個實例。啟動Thread線程的唯一方法就是通過Thread類的Start()方法。start()方法是一個Native方法,將啟動一個新線程,并執(zhí)行Run()方法.
這種方法很簡單,通過自己的累繼承Thread類,然后重寫Run()方法,就可以啟動新線程并執(zhí)行自己定義的Run()方法。如下:
2.實現(xiàn)Runable接口方式實現(xiàn)多線程
如果自己的類已經(jīng)extends(繼承)另一個類,就無法直接extends類Thread,此時,就要靠實現(xiàn)一個Runnable接口來實現(xiàn)多線程了,如下:
為了啟動MyThread,需要首先實例化一個Thread,并傳入自己的MyThread實例:
然而事實上,當(dāng)傳入了一個Runabletarget參數(shù)給Thread后,Thread的run()方法就會調(diào)用target.run().
3.使用ExecutorService、Callable、Future實現(xiàn)有返回結(jié)果的多線程
ExecutorService、Callable、Future這個對象實際上都是屬于Executor框架中的功能類。
基本思想為:可返回值的任務(wù)必須實現(xiàn)Callable接口,類似的,無返回值的任務(wù)必須Runnable接口。執(zhí)行Callable任務(wù)后,可以獲取一個Future的對象,在該對象上調(diào)用get就可以獲取到Callable任務(wù)返回的Object了,再結(jié)合線程池接口ExecutorService就可以實現(xiàn)傳說中有返回結(jié)果的多線程了。
由于該代碼實例代碼內(nèi)容較長,理解起來比較復(fù)雜,如果你需要源碼進(jìn)行學(xué)習(xí),請聯(lián)系小編,基于jdk1.5或者1.5以上的版本。
以上就是動力節(jié)點java培訓(xùn)機構(gòu)的小編針對“Java基礎(chǔ)學(xué)習(xí):Java多線程爬蟲”的內(nèi)容進(jìn)行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務(wù)。
初級 202925
初級 203221
初級 202629
初級 203743