Java多線程的常用創(chuàng)建方式總結(jié)
Java多線程的創(chuàng)建方式
Java現(xiàn)在有四種創(chuàng)建的方式:繼承Threa類、實現(xiàn)Runnable接口、實現(xiàn)Callable接口、線程池
Thread、Runnable都在java.lang包下;Callable、線程池都在java.util.concurrent包下
1.繼承Thread類,重寫run方法
創(chuàng)建一個類繼承Thread類,并重寫run();因為run()是線程具體執(zhí)行的方法

在測試類或者main()創(chuàng)建Thread對象,并調(diào)用start()啟動線程

備注:start()是啟動線程,run()是線程執(zhí)行的業(yè)務(wù)方法
2.實現(xiàn)Runnable接口,通過參數(shù)方式創(chuàng)建線程
創(chuàng)建一個類實現(xiàn)Runnable接口并重寫run

在測試類或者main()創(chuàng)建Thread對象,并傳入該接口實現(xiàn)類對象,并調(diào)用start()啟動線程

3.實現(xiàn)Callable接口,通過FutureTask來創(chuàng)建線程
創(chuàng)建一個類實現(xiàn)Callable接口,重寫call()call()支持有返回值和拋異常Callable支持泛型

傳入Callable對象,創(chuàng)建FutureFask類

備注:FutureTask實現(xiàn)了Runnable接口;FutureTask.get()可以獲取call()返回值
創(chuàng)建Thread對象,并調(diào)用start方法啟動線程

4.通過線程池方式創(chuàng)建線程
創(chuàng)建一個類實現(xiàn)Runnable或者Callable接口,并重寫對應(yīng)方法

創(chuàng)建一個線程池對象,并執(zhí)行execute方法啟動線程

備注:可以通過線程池方式管理線程個數(shù)等配置信息

幾種創(chuàng)建方式想必大家都已了解,但在實際開發(fā)中大多數(shù)都是以線程池來操作線程的;
線程池優(yōu)勢:提升響應(yīng)速度,提高資源重用率,便于管理
線程的生命周期

到此這篇關(guān)于Java多線程的常用創(chuàng)建方式總結(jié)的文章就介紹到這了,更多相關(guān)Java多線程的創(chuàng)建方式內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Spring學(xué)習(xí)筆記3之消息隊列(rabbitmq)發(fā)送郵件功能
這篇文章主要介紹了Spring學(xué)習(xí)筆記3之消息隊列(rabbitmq)發(fā)送郵件功能的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2016-07-07
idea兩側(cè)的maven-project-structure圖標(biāo)不見了如何解決
這篇文章主要介紹了如何解決idea兩側(cè)的maven-project-structure圖標(biāo)不見了問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-07-07
Java中如何使用正則表達(dá)式提取各種類型括號中的內(nèi)容
最近在工作中遇到一個問題,就是需要一個字符串中每一個中括號里的內(nèi)容,下面這篇文章主要給大家介紹了關(guān)于Java中如何使用正則表達(dá)式提取各種類型括號中的內(nèi)容,需要的朋友可以參考下2023-06-06
Java將json對象轉(zhuǎn)換為map鍵值對案例詳解
這篇文章主要介紹了Java將json對象轉(zhuǎn)換為map鍵值對案例詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-09-09
解決idea 拉取代碼出現(xiàn)的 “ Сannot Run Git Cannot identify version of
這篇文章主要介紹了解決idea 拉取代碼出現(xiàn)的 “ Сannot Run Git Cannot identify version of git executable: no response“的問題,需要的朋友可以參考下2020-08-08
Java數(shù)據(jù)結(jié)構(gòu)之對象比較詳解
這篇文章主要為大家詳細(xì)介紹了Java中對象的比較、集合框架中PriorityQueue的比較方式以及PriorityQueue的模擬實現(xiàn),感興趣的可以了解一下2022-07-07
Java微信公眾平臺開發(fā)(7) 公眾平臺測試帳號的申請
這篇文章主要為大家詳細(xì)介紹了Java微信公眾平臺開發(fā)第七步,微信公眾平臺測試帳號的申請,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-04-04
Java如何將String轉(zhuǎn)換成json對象或json數(shù)組
這篇文章主要介紹了Java如何將String轉(zhuǎn)換成json對象或json數(shù)組,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-02-02
SpringBoot2.x配置多數(shù)據(jù)源方式
這篇文章主要介紹了SpringBoot2.x配置多數(shù)據(jù)源方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-03-03

