91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java線程停止方式有哪些?

發布時間:2020-06-23 18:27:13 來源:億速云 閱讀:163 作者:清晨 欄目:編程語言

這篇文章將為大家詳細講解有關Java線程停止方式有哪些?,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

1.正常的程序啟動,停止

2.使用退出標記,一般程序在run()方法后,線程會正常結束。

但是有一些伺服線程還在運行,他們運行時間較長,只有當外部條件滿足時,他們才會停止。實現如下:

public class ThreadCease extends Thread{
  private volatile boolean exit = false;
  public void run(){
   while(!exit){
    //停止后做的事情~
   }
}

3.使用線程(Thread)自帶的isInterrupted()方法來結束線程。實現如下:

public class ThreadCease1 extends Thread{
  public void run(){
   while(!isInterrupted()){
    try{
      Thread.sleep(3000);
     }catch(Exception e){
      e.printStackTrace();
      break;
      }
   }
  }
}

注意:使用interrupted()方法來中斷線程有兩種情況:

3.1.1 線程處于阻塞狀態,如線程中使用了sleep(),同步鎖 wait(),socket的receiver,accept方法時,會使線程進入到阻塞狀態,當程序調用interrupted()方法時,會拋出InterrupteException異常。阻塞中的那個方法拋出異常,通過捕獲該異常,然后break跳出循環,從而結束該線程。注:不是調用了interrupted()方法就會結束線程,是捕獲到了interruptedException異常后,break 跳出循環后才能結束此線程。

3.1.2 線程未處于阻塞狀態,調用interrupted()方法時,實際上是通過判斷線程的中斷標記來退出循環。

4.stop()方法停止

Thread.stop()方法來結束線程的運行,但是很危險,一般不建議使用stop()來停止線程;不安全的原因主要有:在程序調用Thread.stop()后會拋出ThreadDeatherror()錯誤。并釋放子線程所持有的所有鎖,會導致被保護數據呈現不一致性,此過程不可控。

關于Java線程停止方式有哪些?就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

南陵县| 工布江达县| 廊坊市| 全南县| 寿光市| 周至县| 广州市| 长丰县| 张家川| 和平县| 耒阳市| 阳高县| 云林县| 灌云县| 东安县| 科技| 新安县| 隆德县| 汕头市| 客服| 龙门县| 沾益县| 安西县| 瓮安县| 福海县| 南开区| 晋州市| 玛曲县| 卓尼县| 新丰县| 金寨县| 左云县| 会理县| 台前县| 静乐县| 徐汇区| 中宁县| 民权县| 正定县| 沾化县| 文水县|