欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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://www.dbjr.com.cn/books/577859.html

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

http://www.dbjr.com.cn/books/568505.html

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

相關(guān)文章

  • js實(shí)現(xiàn)拖拽拼圖游戲

    js實(shí)現(xiàn)拖拽拼圖游戲

    這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)拖拽拼圖游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • Java實(shí)現(xiàn)貪吃蛇游戲的示例代碼

    Java實(shí)現(xiàn)貪吃蛇游戲的示例代碼

    這篇文章主要為大家詳細(xì)介紹了如何利用Java實(shí)現(xiàn)簡(jiǎn)單的貪吃蛇游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-09-09
  • 詳解Java中的Lambda表達(dá)式

    詳解Java中的Lambda表達(dá)式

    Lambda表達(dá)式是Java SE 8中一個(gè)重要的新特性。這篇文章主要介紹了Java中的Lambda表達(dá)式 ,需要的朋友可以參考下
    2019-04-04
  • 解決Callable的對(duì)象中,用@Autowired注入別的對(duì)象失敗問(wèn)題

    解決Callable的對(duì)象中,用@Autowired注入別的對(duì)象失敗問(wèn)題

    這篇文章主要介紹了解決Callable的對(duì)象中,用@Autowired注入別的對(duì)象失敗問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • springboot項(xiàng)目配置logback-spring.xml實(shí)現(xiàn)按日期歸檔日志的方法

    springboot項(xiàng)目配置logback-spring.xml實(shí)現(xiàn)按日期歸檔日志的方法

    本文主要介紹了springboot項(xiàng)目配置logback-spring.xml實(shí)現(xiàn)按日期歸檔日志的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-08-08
  • mybatis-plus3.4.0邏輯刪除報(bào)錯(cuò)的解決

    mybatis-plus3.4.0邏輯刪除報(bào)錯(cuò)的解決

    這篇文章主要介紹了mybatis-plus3.4.0邏輯刪除報(bào)錯(cuò)的解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • Idea中如何調(diào)出Run dashboard 或services窗口

    Idea中如何調(diào)出Run dashboard 或services窗口

    這篇文章主要介紹了Idea中如何調(diào)出Run dashboard 或services窗口問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • Java中HashMap和HashTable區(qū)別

    Java中HashMap和HashTable區(qū)別

    HashMap和Hashtable都是Java常見(jiàn)的基于哈希表實(shí)現(xiàn)的Map接口的實(shí)現(xiàn)類(lèi),本文主要介紹了Java中HashMap和HashTable區(qū)別,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-11-11
  • Java獲取當(dāng)前時(shí)間方法總結(jié)

    Java獲取當(dāng)前時(shí)間方法總結(jié)

    本篇文章給大家整理了關(guān)于Java獲取當(dāng)前時(shí)間方法,以及相關(guān)代碼分享,有需要的朋友測(cè)試參考下吧。
    2018-02-02
  • 解決cmd運(yùn)行java程序“找不到文件”提示的方案

    解決cmd運(yùn)行java程序“找不到文件”提示的方案

    在本篇文章里小編給大家分享的是關(guān)于解決cmd運(yùn)行java程序“找不到文件”提示的方案,有需要的朋友們可以參考下。
    2020-02-02

最新評(píng)論