最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java線程核心操作之創(chuàng)建、啟動(dòng)與安全停止完全解析

 更新時(shí)間:2026年03月17日 09:19:15   作者:fengxin_rou  
Java作為一種廣泛使用的編程語言,具有豐富的多線程支持,在Java中處理多線程的核心在于Thread類和Runnable接口,這篇文章主要介紹了Java線程核心操作之創(chuàng)建、啟動(dòng)與安全停止完全解析的相關(guān)資料,需要的朋友可以參考下

1.創(chuàng)建線程的方法有哪些?

繼承Thread類

優(yōu)點(diǎn):繼承Thread操作簡單,用Thread.currentThread()可以得到當(dāng)前運(yùn)行的線程,用this也可以直接得到當(dāng)前運(yùn)行的線程

缺點(diǎn):繼承Thread類后不能繼承其他類

實(shí)現(xiàn)Runnable接口

若是一個(gè)方法繼承了其他父類,就可以實(shí)現(xiàn)java.lang.Runnable接口,實(shí)現(xiàn)接口需要重寫它的Run方法,然后在Thread構(gòu)造器里把Runnable對象作為參數(shù)傳遞進(jìn)去,然后使用strat()方法創(chuàng)建線程

優(yōu)點(diǎn):可以在繼承其他父類時(shí),創(chuàng)建線程,并且可以實(shí)現(xiàn)多個(gè)線程資源共享,可以操作同一個(gè)Runnable對象,可以把cpu代碼和數(shù)據(jù)分開,更好體現(xiàn)面向?qū)ο蟮木幊趟枷?/p>

缺點(diǎn):操作比較復(fù)雜,訪問當(dāng)前線程只能用Tread.currentTread()方法

實(shí)現(xiàn)Callable接口與FutureTask

java.util.concurrent.Callable接口類似于Runnable接口,但Callabe接口的call方法有返回值還可以拋出異常,想要?jiǎng)?chuàng)建線程需要先創(chuàng)建Callable對象,然后把對象作為參數(shù)傳給Future Task任務(wù)管理器,然后創(chuàng)建線程,執(zhí)行Callable任務(wù)、還可以得到任務(wù)結(jié)果

優(yōu)點(diǎn):可以繼承其他父類,并且實(shí)現(xiàn)資源共享

缺點(diǎn):操作復(fù)雜并且訪問當(dāng)前線程只能Thread.currentThead()

使用線程池

Java 5 引入的java.util.concurrent.ExecutorService接口和其他類,提供了線程池的支持,避免了查詢和創(chuàng)建線程,可以通過Executor的靜態(tài)方法創(chuàng)建不同類型的線程池、提高了線程管理效率

優(yōu)點(diǎn):可以避免重用預(yù)先創(chuàng)建的線程,避免了創(chuàng)建和查詢線程的開銷,提高了線程管理的效率。線程池可以合理的分配線程,避免資源浪費(fèi),如果遇到并發(fā)情況,線程池還可以快速提供線程來處理任務(wù),減少等待時(shí)間。合理設(shè)置線程池的大小,可以提高cpu的利用率和系統(tǒng)吞吐量

補(bǔ):系統(tǒng)吞吐量是指單位時(shí)間內(nèi)系統(tǒng)成功處理的任務(wù)或業(yè)務(wù)量

缺點(diǎn):代碼操作比較復(fù)雜,在設(shè)置線程池參數(shù)的時(shí)候如果出錯(cuò),可能會(huì)引起死鎖,資源進(jìn)程等問題,修復(fù)起來比較復(fù)雜

2.怎么啟動(dòng)線程?

通過Thread類的strat方法

3.怎么停止線程?

當(dāng)線程執(zhí)行 wait()/sleep()/join() 等可中斷阻塞方法時(shí),調(diào)用 interrupt() 會(huì)喚醒線程并拋出 InterruptedException,我們可以捕獲該異常實(shí)現(xiàn)線程中斷;而正常運(yùn)行的線程,需通過輪詢 interrupted()/isInterrupted() 判斷中斷狀態(tài),主動(dòng)停止線程(無異常拋出)

stop()暴力停止:已經(jīng)被廢棄,線程如果強(qiáng)行調(diào)用stop()暴力停止可能會(huì)引起清理性的工作無法完成

補(bǔ):

中斷

是一個(gè)動(dòng)作也就是調(diào)用Thread.interrupt()方法,改方法會(huì)發(fā)送一個(gè)中斷請求,這是一個(gè)信號,不是強(qiáng)制立刻停止線程。

中斷標(biāo)記(中斷狀態(tài))?

這是線程對象內(nèi)部的一個(gè)布爾標(biāo)志位(true/false):

  • true表示該線程收到了中斷請求(但未必已處理)。

  • false表示沒有收到中斷請求或已被清除。

這個(gè)標(biāo)志位是持久化存儲在線程對象里的,直到被顯式改變。

到此這篇關(guān)于Java線程核心操作之創(chuàng)建、啟動(dòng)與安全停止完全解析的文章就介紹到這了,更多相關(guān)Java線程創(chuàng)建、啟動(dòng)與安全停止內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • springboot集成開發(fā)實(shí)現(xiàn)商場秒殺功能

    springboot集成開發(fā)實(shí)現(xiàn)商場秒殺功能

    這篇文章主要介紹了springboot集成實(shí)現(xiàn)商品秒殺功能,秒殺系統(tǒng)業(yè)務(wù)流程,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-12-12
  • java中fastjson生成和解析json數(shù)據(jù)(序列化和反序列化數(shù)據(jù))

    java中fastjson生成和解析json數(shù)據(jù)(序列化和反序列化數(shù)據(jù))

    本篇文章主要介紹了java中fastjson生成和解析json數(shù)據(jù)(序列化和反序列化數(shù)據(jù)),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。
    2017-02-02
  • Java(TM) Platform SE binary 打開jar文件的操作

    Java(TM) Platform SE binary 打開jar文件的操作

    這篇文章主要介紹了Java(TM) Platform SE binary 打開jar文件的操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • 在Spring Boot2中使用CompletableFuture的方法教程

    在Spring Boot2中使用CompletableFuture的方法教程

    這篇文章主要給大家介紹了關(guān)于在Spring Boot2中使用CompletableFuture的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧
    2019-01-01
  • JVM(Java虛擬機(jī))簡介(動(dòng)力節(jié)點(diǎn)Java學(xué)院整理)

    JVM(Java虛擬機(jī))簡介(動(dòng)力節(jié)點(diǎn)Java學(xué)院整理)

    Java虛擬機(jī)(Jvm)是可運(yùn)行Java代碼的假想計(jì)算機(jī)。Java虛擬機(jī)包括一套字節(jié)碼指令集、一組寄存器、一個(gè)棧、一個(gè)垃圾回收堆和一個(gè)存儲方法域。對java jvm 虛擬機(jī)感興趣的朋友通過本文一起學(xué)習(xí)吧
    2017-04-04
  • 基于Java在netty中實(shí)現(xiàn)線程和CPU綁定

    基于Java在netty中實(shí)現(xiàn)線程和CPU綁定

    這篇文章主要介紹了基于Java在netty中實(shí)現(xiàn)線程和CPU綁定,文章圍繞主題的相關(guān)內(nèi)容展開詳細(xì)介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-05-05
  • Java實(shí)現(xiàn)整數(shù)分解質(zhì)因數(shù)的方法示例

    Java實(shí)現(xiàn)整數(shù)分解質(zhì)因數(shù)的方法示例

    這篇文章主要介紹了Java實(shí)現(xiàn)整數(shù)分解質(zhì)因數(shù)的方法,結(jié)合實(shí)力形式分析了質(zhì)因數(shù)分解的原理與實(shí)現(xiàn)方法,涉及java數(shù)值運(yùn)算相關(guān)操作技巧,需要的朋友可以參考下
    2017-12-12
  • JAVA讀取文本文件內(nèi)容實(shí)例代碼

    JAVA讀取文本文件內(nèi)容實(shí)例代碼

    這篇文章主要給大家介紹了關(guān)于JAVA讀取文本文件內(nèi)容的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Java具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • Springboot項(xiàng)目如何兼容老的Spring項(xiàng)目問題

    Springboot項(xiàng)目如何兼容老的Spring項(xiàng)目問題

    這篇文章主要介紹了Springboot項(xiàng)目如何兼容老的Spring項(xiàng)目問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • SpringSecurity怎樣使用注解控制權(quán)限

    SpringSecurity怎樣使用注解控制權(quán)限

    這篇文章主要介紹了SpringSecurity怎樣使用注解控制權(quán)限的操作,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06

最新評論

石柱| 华阴市| 泗洪县| 鱼台县| 望奎县| 巫山县| 同德县| 饶平县| 昌黎县| 沁水县| 绍兴市| 郧西县| 营山县| 仁寿县| 东莞市| 延长县| 全州县| 革吉县| 湘潭县| 丰原市| 东城区| 温宿县| 寻乌县| 岑巩县| 枣阳市| 金阳县| 皋兰县| 卢湾区| 红河县| 永泰县| 洪江市| 平顺县| 栾城县| 许昌县| 洛扎县| 西华县| 陈巴尔虎旗| 古蔺县| 和林格尔县| 枝江市| 偏关县|