JAVA線程3 如何實現處理線程的返回值

在線程執行過程中可能會存在一個問題,如下所示:在線程中我們更新了線程對象value的值,因爲線程是異步執行的,還未等到線程執行完畢,main函數就輸出了value值,此時value的值爲null。那麼我們如何才能讓main函數能夠在線程完成後再輸出更新後的value值呢??

方式1:主線程等待法

方式2:使用Thread類的join()阻塞當前線程以等待子線程處理完畢

join方法

作用:讓調用該方法的線程在執行完run()方法後,再執行join方法後面的代碼。將兩個線程合併,用於實現同步功能。通過A.join()方法來等待線程A的結束,才運行join下面的代碼。

方式3:通過Callable接口實現線程:通過FutureTask Or 線程池獲取

繼承Callable接口實現的線程類,在線程執行時執行類中的call()方法,該方法具有返回值

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章