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

Java多線(xiàn)程編程安全退出線(xiàn)程方法介紹

 更新時(shí)間:2017年10月23日 11:45:10   作者:Zzrdark_的博客  
這篇文章主要介紹了Java多線(xiàn)程編程安全退出線(xiàn)程方法介紹,具有一定參考價(jià)值,需要的朋友可以了解下。

線(xiàn)程停止

Thread提供了一個(gè)stop()方法,但是stop()方法是一個(gè)被廢棄的方法。為什么stop()方法被廢棄而不被使用呢?原因是stop()方法太過(guò)于暴力,會(huì)強(qiáng)行把執(zhí)行一半的線(xiàn)程終止。這樣會(huì)就不會(huì)保證線(xiàn)程的資源正確釋放,通常是沒(méi)有給與線(xiàn)程完成資源釋放工作的機(jī)會(huì),因此會(huì)導(dǎo)致程序工作在不確定的狀態(tài)下

那我們?cè)撌褂檬裁磥?lái)停止線(xiàn)程呢

Thread.interrupt(),我們可以用他來(lái)停止線(xiàn)程,他是安全的,可是使用他的時(shí)候并不會(huì)真的停止了線(xiàn)程,只是會(huì)給線(xiàn)程打上了一個(gè)記號(hào),至于這個(gè)記號(hào)有什么用呢我們可以這樣來(lái)用。

public class Mythread extends Thread{
 public void run(){
  super.run();
  for(int i =0 ;i<50000;i++){
   if(this.interrupted()){
    System.out.println("停止");
    break;
   }
  }
  System.out.println("i="+(i+1));
 }
}
public class Run{
 try{
  MyThread thread = new MyThread();
  thread.start();
  thread.sleep(1000);
  thread.interrupt(); //打上標(biāo)記
 }catch(Exception e){
  System.out.println("main");
  e.printStackTrace();
 }
 System.out.println("end!")
}

雖然這樣就會(huì)停止下來(lái) ,可是For后面的語(yǔ)句還是會(huì)執(zhí)行。

異常法 退出線(xiàn)程

public class Mythread extends Thread{
 public void run(){
  super.run();
  try{
   for(int i =0 ;i<50000;i++){
    if(this.interrupted()){
     System.out.println("停止");
     throw new Exception();
    }
   }
   System.out.println("i="+(i+1));
  }catch(Exception e){
   System.out.println("拋出異常了");
   e.printStackTrace();
  }
 }
}

解釋 如果當(dāng)我們打上了一個(gè)標(biāo)記我們就可以檢測(cè)到已經(jīng)打上的時(shí)候就返回個(gè)true,進(jìn)入if里面返回了一個(gè)異常 這樣就終止了。這樣做使的線(xiàn)程可以在我們可控的范圍里停止

用什么方法去看什么狀態(tài)呢

this.interrupted():看看當(dāng)前線(xiàn)程是否是中斷狀態(tài),執(zhí)行后講狀態(tài)表示改為false this.isInterrupeted():看看線(xiàn)程對(duì)象是否已經(jīng)是中斷狀態(tài),但是不清除中斷狀態(tài)標(biāo)記。

總結(jié)

以上就是本文關(guān)于Java多線(xiàn)程編程安全退出線(xiàn)程方法介紹的全部?jī)?nèi)容,希望對(duì)大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站:淺談Java多線(xiàn)程處理中Future的妙用(附源碼)、Java多線(xiàn)程ForkJoinPool實(shí)例詳解等,有什么問(wèn)題可以隨時(shí)留言,小編會(huì)及時(shí)回復(fù)大家的。下面推薦本站兩本關(guān)于Java編程的書(shū)籍,供參考:

Java經(jīng)典實(shí)例(第三版) 完整版 ([美]達(dá)爾文) 中文pdf掃描版

http://m.fzitv.net/books/577859.html

Java軟件結(jié)構(gòu)與數(shù)據(jù)結(jié)構(gòu)(第4版) (John Lewis) 中文pdf掃描版

http://m.fzitv.net/books/568505.html

希望對(duì)大家有所幫助!

相關(guān)文章

  • Java中如何自定義一個(gè)類(lèi)加載器

    Java中如何自定義一個(gè)類(lèi)加載器

    這篇文章主要介紹了Java中如何自定義一個(gè)類(lèi)加載器,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • 詳解Java實(shí)現(xiàn)JSONArray轉(zhuǎn)Map的三種實(shí)現(xiàn)方式

    詳解Java實(shí)現(xiàn)JSONArray轉(zhuǎn)Map的三種實(shí)現(xiàn)方式

    本文主要介紹了Java實(shí)現(xiàn)JSONArray轉(zhuǎn)Map的三種實(shí)現(xiàn)方式,本文只是自己常用的三種,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • Java實(shí)現(xiàn)開(kāi)箱即用的redis分布式鎖

    Java實(shí)現(xiàn)開(kāi)箱即用的redis分布式鎖

    這篇文章主要為大家詳細(xì)介紹了如何使用Java實(shí)現(xiàn)開(kāi)箱即用的基于redis的分布式鎖,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,需要的可以收藏一下
    2022-12-12
  • JAVA正則表達(dá)式的基本使用教程

    JAVA正則表達(dá)式的基本使用教程

    這篇文章主要給大家介紹了關(guān)于JAVA正則表達(dá)式的基本使用教程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • 深入理解Java中的String(示例詳解)

    深入理解Java中的String(示例詳解)

    文章詳細(xì)介紹了Java中String類(lèi)的特點(diǎn)、用途、主要方法以及常見(jiàn)用法,String類(lèi)是不可變的,具有字符串常量池,特定的內(nèi)存結(jié)構(gòu),并隨JDK版本更新而優(yōu)化,它廣泛用于表示和處理文本數(shù)據(jù),并在內(nèi)存管理和性能優(yōu)化方面表現(xiàn)出色,感興趣的朋友一起看看吧
    2025-03-03
  • Java如何解析html中的內(nèi)容并存到數(shù)據(jù)庫(kù)詳解

    Java如何解析html中的內(nèi)容并存到數(shù)據(jù)庫(kù)詳解

    最近用到了Java解析Html的一個(gè)庫(kù)Jsoup,所以下面這篇文章主要給大家介紹了關(guān)于Java如何解析html中的內(nèi)容并存到數(shù)據(jù)庫(kù)的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-03-03
  • Java基礎(chǔ)鞏固抽象類(lèi)與接口詳解

    Java基礎(chǔ)鞏固抽象類(lèi)與接口詳解

    在類(lèi)中沒(méi)有包含足夠的信息來(lái)描繪一個(gè)具體的對(duì)象,這樣的類(lèi)稱(chēng)為抽象類(lèi),接口是Java中最重要的概念之一,它可以被理解為一種特殊的類(lèi),不同的是接口的成員沒(méi)有執(zhí)行體,是由全局常量和公共的抽象方法所組成,本文給大家介紹Java抽象類(lèi)和接口,感興趣的朋友一起看看吧
    2022-05-05
  • JPA如何將查詢(xún)結(jié)果轉(zhuǎn)換為DTO對(duì)象

    JPA如何將查詢(xún)結(jié)果轉(zhuǎn)換為DTO對(duì)象

    這篇文章主要介紹了JPA如何將查詢(xún)結(jié)果轉(zhuǎn)換為DTO對(duì)象,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • springboot項(xiàng)目部署到k8s上的方法步驟

    springboot項(xiàng)目部署到k8s上的方法步驟

    本文主要介紹了springboot項(xiàng)目部署到k8s上的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • 淺談Spring boot cache使用和原理

    淺談Spring boot cache使用和原理

    這篇文章主要介紹了淺談Spring boot cache使用和原理,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-09-09

最新評(píng)論

江达县| 钟山县| 襄城县| 南宁市| 临漳县| 宜川县| 汽车| 衢州市| 郑州市| 扶风县| 北海市| 石林| 腾冲县| 大埔县| 汉寿县| 长海县| 类乌齐县| 渭源县| 阿拉尔市| 安平县| 壤塘县| 嵊州市| 天祝| 通渭县| 新蔡县| 大庆市| 工布江达县| 侯马市| 榆中县| 厦门市| 陆良县| 稷山县| 修武县| 中山市| 南木林县| 古交市| 嵊州市| 资兴市| 宝兴县| 巴彦淖尔市| 益阳市|