更新時間:2020-04-09 14:54:54 來源:動力節點 瀏覽3028次
第一種方法:繼承Thread類
第二種方法:實現Runnable接口
第三種方法:使用匿名內部類創建線程
第四種方法:使用Callable和Future創建線程
和Runnable接口不一樣,Callable接口提供了一個call()方法作為線程執行體,call()方法比run()方法功能要強大。
①call()方法可以有返回值
②call()方法可以聲明拋出異常
③Java5提供了Future接口來代表Callable接口里call()方法的返回值,并且為Future接口提供了一個實現類FutureTask,這個實現類既實現了Future接口,還實現了Runnable接口,因此可以作為Thread類的target。在Future接口里定義了幾個公共方法來控制它關聯的Callable任務。
④booleancancel(booleanmayInterruptIfRunning):視圖取消該Future里面關聯的Callable任務
⑤Vget():返回Callable里call()方法的返回值,調用這個方法會導致程序阻塞,必須等到子線程結束后才會得到返回值
⑥Vget(longtimeout,TimeUnitunit):返回Callable里call()方法的返回值,最多阻塞timeout時間,經過指定時間沒有返回拋出TimeoutException
⑦booleanisDone():若Callable任務完成,返回True
booleanisCancelled():如果在Callable任務正常完成前被取消,返回True
創建步驟如下:
1】創建Callable接口的實現類,并實現call()方法,然后創建該實現類的實例(從java8開始可以直接使用Lambda表達式創建Callable對象)。
2】使用FutureTask類來包裝Callable對象,該FutureTask對象封裝了Callable對象的call()方法的返回值
3】使用FutureTask對象作為Thread對象的target創建并啟動線程(因為FutureTask實現了Runnable接口)
4】調用FutureTask對象的get()方法來獲得子線程執行結束后的返回值
以上就是動力節點java培訓機構的小編針對“java多線程項目,實現Java多線程的方式”的內容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習