亚洲精品中文免费|亚洲日韩中文字幕制服|久久精品亚洲免费|一本之道久久免费

      
      

            <dl id="hur0q"><div id="hur0q"></div></dl>

                java面試題整理《多線程篇》七

                Thread、Runable和Callable 三者區(qū)別?Thread 是一個抽象類,只能被繼承,而 Runable、Callable 是接口,需要實現(xiàn)接口中的方法。繼承 Thread 重寫run()方法,實現(xiàn)Runable接口需要實現(xiàn)run()方法,而Callable是需要實現(xiàn)call()方法。Thread 和 Runable 沒有返回值,Callable 有返回值,返回值可以被 Future 拿到。實現(xiàn) Runable 接口的類不能直接調(diào)用start()方法,需要 new 一個 Thread 并發(fā)該實現(xiàn)類放入 Thread,再通過新建的 Thread 實例來調(diào)用start()方法。實現(xiàn) Callable 接口的類需要借助 FutureTask (將該實現(xiàn)類放入其中),再將 FutureTask 實例放入 Thread,再通過新建的 Thread 實例來調(diào)用start()方法。獲取返回值只需要借助 FutureTask 實例調(diào)用get()方法即可!什么是 FutureTask?FutureTask 表示一個異步運算的任務(wù)。FutureTask 里面可以傳入一個Callable 的具體實現(xiàn)類,可以對這個異步運算的任務(wù)的結(jié)果進行等待獲取、判斷是否已經(jīng)完成、取消任務(wù)等操作。只有當運算完成的時候結(jié)果才能取回,如果運算尚未完成 get 方法將會阻塞。一個 FutureTask 對象可以對調(diào)用了 Callable 和 Runnable 的對象進行包裝,由于 FutureTask 也是Runnable 接口的實現(xiàn)類,所以 FutureTask 也可以放入線程池中。

                線程的 run()和 start()有什么區(qū)別?通過調(diào)用 Thread 類的 start()方法來啟動一個線程, 這時此線程是處于就緒狀態(tài), 并沒有運行。這時無需等待 run 方法體代碼執(zhí)行完畢,可以直接繼續(xù)執(zhí)行下面的代碼。

                方法 run()稱為線程體,它包含了要執(zhí)行的這個線程的內(nèi)容,線程就進入了運行狀態(tài),開始運行 run 函數(shù)當中的代碼。 run 方法運行結(jié)束, 此線程終止。然后 CPU 再調(diào)度其它線程。

                run() 可以重復(fù)調(diào)用,而 start()只能調(diào)用一次。

                為什么我們調(diào)用 start() 方法時會執(zhí)行 run() 方法,為什么我們不能直接調(diào)用run() 方法?

                如果直接執(zhí)行 run() 方法,會把 run 方法當成一個 main 線程下的普通方法去執(zhí)行,并不會在某個線程中執(zhí)行它,所以這并不是多線程工作。調(diào)用 start 方法方可啟動線程并使線程進入就緒狀態(tài),而 run 方法只是 thread 的一個普通方法調(diào)用,還是在主線程里執(zhí)行。

                尚學堂給同學們帶來全新的Java300集課程啦!java零基礎(chǔ)小白自學Java必備優(yōu)質(zhì)教程_手把手圖解學習Java,讓學習成為一種享受_嗶哩嗶哩_bilibili

                鄭重聲明:本文內(nèi)容及圖片均整理自互聯(lián)網(wǎng),不代表本站立場,版權(quán)歸原作者所有,如有侵權(quán)請聯(lián)系管理員(admin#wlmqw.com)刪除。
                用戶投稿
                上一篇 2022年8月15日 21:58
                下一篇 2022年8月15日 21:58

                相關(guān)推薦

                • 分享4條發(fā)微商朋友圈的方法(微商朋友圈應(yīng)該怎么發(fā))

                  對于微商朋友來說,朋友圈的重要性不言而喻了。 那么微商的朋友圈到底該怎么發(fā)呢? 為什么同樣是經(jīng)營一個朋友圈,有的微商看起來逼格滿滿,實際效果也不錯;而有的卻動都不動就被屏蔽甚至拉黑…

                  2022年11月27日
                • 西芹腰果的做法(西芹炒腰果)

                  01 去除西芹的葉子以及表皮,切成菱形塊,將大蒜和生姜都準備好,蝦米放入到清水中清洗,去除表面的雜質(zhì)。 02 在鍋里面加入適量的水,然后加入食用油以及鹽,將切好的西芹直接放入到其中…

                  2022年11月25日
                • 白蘿卜的做法大全(白蘿卜的做法大全腌制糖醋)

                  簡要回答 白蘿卜營養(yǎng)價值高,就算是生吃也很入口清脆,而且還有豐富的營養(yǎng)元素,不管是燉蒸炒還是做湯都很鮮香。 詳細內(nèi)容 01 腌制爽脆的白蘿卜,可以買一小袋泡腳,放入切好的白蘿卜條,…

                  2022年11月25日
                • 《寶可夢朱紫》夢特性怎么獲得?隱藏特性獲取方法推薦

                  寶可夢朱紫里有很多寶可夢都是擁有夢特性會變強的寶可夢,很多玩家不知道夢特性怎么獲得,下面就給大家?guī)韺毧蓧糁熳想[藏特性獲取方法推薦,感興趣的小伙伴一起來看看吧,希望能幫助到大家。 …

                  2022年11月25日
                • 《寶可夢朱紫》奇魯莉安怎么進化?奇魯莉安進化方法分享

                  寶可夢朱紫中的奇魯莉安要怎么進化呢?很多玩家都不知道,下面就給大家?guī)韺毧蓧糁熳掀骠斃虬策M化方法分享,感興趣的小伙伴一起來看看吧,希望能幫助到大家。 奇魯莉安進化方法分享 奇魯莉安…

                  2022年11月25日
                • 成都健康碼打不開顯示接口請求未知異常怎么辦(成都健康碼打不開顯示接口請求未知異常)

                  成都這幾天的疫情也是備受關(guān)注,疫情期間各地出行都是需要查看健康碼的,不過今天卻有成都的小伙伴反饋健康碼無法打開的情況。成都健康碼打不開顯示接口請求未知異常怎么辦?由于健康碼無法打開…

                  2022年11月24日
                • cpu性能天梯圖2022 AMD CPU天梯圖最新排行榜出爐

                  用戶在DIY自己的主機時選擇CPU是非常關(guān)鍵的,CPU可以說是電腦的大腦,大家也都想追求好一點的CPU來使用,但型號太多了,大部分的用戶都不知道目前哪一款CPU比較好用,快來看看詳…

                  2022年11月24日
                • 《寶可夢朱紫》暴飛龍怎么抓?暴飛龍獲得方法

                  寶可夢朱紫暴飛龍位置在哪?在游戲中,很多玩家還不清楚暴飛龍具體要怎么樣獲得,其實獲得方法很簡單,暴飛龍直接是沒得抓的,需要玩家從寶貝龍進化得到,下面一起來看一下寶可夢朱紫暴飛龍獲得…

                  2022年11月23日
                • 《寶可夢朱紫》布土撥怎么進化?布土撥進化方法介紹

                  寶可夢朱紫中,不同的寶可夢有不同的進化方法,其中布土撥的進化方法是比較特殊的。很多玩家不知道寶可夢朱紫布土撥怎么進化,下面就帶來寶可夢朱紫布土撥進化方法介紹,一起來看看吧,希望能幫…

                  2022年11月23日
                • 《寶可夢朱紫》薄荷怎么獲得?薄荷獲得方法

                  寶可夢朱紫中薄荷有改變寶可夢的屬性或性格等效果,很多玩家想知道寶可夢朱紫薄荷怎么獲得,下面就帶來寶可夢朱紫薄荷獲得方法,感興趣的小伙伴一起來看看吧,希望能幫助到大家。 薄荷獲得方法…

                  2022年11月23日

                聯(lián)系我們

                聯(lián)系郵箱:admin#wlmqw.com
                工作時間:周一至周五,10:30-18:30,節(jié)假日休息