更新時間:2020-04-29 13:59:59 來源:動力節點 瀏覽2462次
java多線程實現方式主要有三種:繼承Thread類、實現Runable接口、使用ExecutorService、CallBack、Future實現有返回結果的多線程。其中前兩種現成執行完是沒有返回值的,第三種才有返回值。下面詳細看看三種實現方式:
1.繼承Thread類實現多線程:
其實,繼承Thread類的方法實現多線程,但其本質也是實現了Runable接口的一個實例。啟動Thread線程的唯一方法就是通過Thread類的Start()方法。start()方法是一個Native方法,將啟動一個新線程,并執行Run()方法.
這種方法很簡單,通過自己的累繼承Thread類,然后重寫Run()方法,就可以啟動新線程并執行自己定義的Run()方法。如下:
2.實現Runable接口方式實現多線程
如果自己的類已經extends(繼承)另一個類,就無法直接extends類Thread,此時,就要靠實現一個Runnable接口來實現多線程了,如下:
為了啟動MyThread,需要首先實例化一個Thread,并傳入自己的MyThread實例:
然而事實上,當傳入了一個Runabletarget參數給Thread后,Thread的run()方法就會調用target.run().
3.使用ExecutorService、Callable、Future實現有返回結果的多線程
ExecutorService、Callable、Future這個對象實際上都是屬于Executor框架中的功能類。
基本思想為:可返回值的任務必須實現Callable接口,類似的,無返回值的任務必須Runnable接口。執行Callable任務后,可以獲取一個Future的對象,在該對象上調用get就可以獲取到Callable任務返回的Object了,再結合線程池接口ExecutorService就可以實現傳說中有返回結果的多線程了。
由于該代碼實例代碼內容較長,理解起來比較復雜,如果你需要源碼進行學習,請聯系小編,基于jdk1.5或者1.5以上的版本。
以上就是動力節點java培訓機構的小編針對“Java基礎學習:Java多線程爬蟲”的內容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習