日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

詳解Java停止線程的四種方法

瀏覽:93日期:2022-08-12 14:39:31
一、線程停止基礎知識 interrupted(): 測試當前線程是否已經中斷。該方法為靜態方法,調用后會返回boolean值。不過調用之后會改變線程的狀態,如果是中斷狀態調用的,調用之后會清除線程的中斷狀態。 isInterrupted(): 測試線程是否已經中斷。該方法由對象調用 interrupt(): 標記線程為中斷狀態,不過不會中斷正在運行的線程。 stop(): 暴力停止線程。已棄用。 二、停止線程方法1:異常法停止

線程調用interrupt()方法后,在線程的run方法中判斷當前對象的interrupted()狀態,如果是中斷狀態則拋出異常,達到中斷線程的效果。

如下示例:

MyThread.java

public class MyThread extends Thread { @Override public void run() {try { for (int i = 0; i < 500000; i++) {if (MyThread.interrupted()){ System.out.println('已經是停止狀態了,我要退出了!'); throw new InterruptedException();}System.out.println('i = ' + (i+1)); } System.out.println('如果我被輸出了,則代表線程沒有停止');} catch (InterruptedException e) { System.out.println('在MyThread類中的run方法中被捕獲'); e.printStackTrace();} }}

Main.java

/** * 根據中斷狀態退出for循環 * @Author: xjf * @Date: 2019/5/25 13:27 */public class Main { public static void main(String[] args) {try { MyThread myThread = new MyThread(); myThread.start(); Thread.sleep(100); myThread.interrupt();} catch (InterruptedException e) { e.printStackTrace();}System.out.println('end!'); }}

結果如下:i = 19115i = 19116i = 19117i = 19118i = 19119end!

已經是停止狀態了,我要退出了!在MyThread類中的run方法中被捕獲java.lang.InterruptedException at com.book.interrupt_exit.MyThread.run(MyThread.java:15)

Process finished with exit code 0

三、停止線程方法2:在沉睡中停止

先將線程sleep,然后調用interrupt標記中斷狀態,interrupt會將阻塞狀態的線程中斷。會拋出中斷異常,達到停止線程的效果。如下示例:

MyThread.java

public class MyThread extends Thread { @Override public void run() {try { System.out.println('run-----------start'); Thread.sleep(5000); System.out.println('run-----------end');} catch (InterruptedException e) { System.out.println('在沉睡中被停止!進入catch,線程的是否處于停止狀態:' + this.isInterrupted()); e.printStackTrace();} }}

Main.java

public class Main { public static void main(String[] args) {try { MyThread myThread = new MyThread(); myThread.start(); Thread.sleep(2000); System.out.println('狀態:'+MyThread.interrupted()); myThread.interrupt();} catch (InterruptedException e) { e.printStackTrace();} }}

結果run-----------start狀態:falsejava.lang.InterruptedException: sleep interrupted在沉睡中被停止!進入catch,線程的是否處于停止狀態:false at java.lang.Thread.sleep(Native Method) at com.book.sleep_interrupt.MyThread.run(MyThread.java:13)

線程先調用interrupt標記中斷狀態,然后線程再睡眠。會拋出中斷異常,達到停止線程的效果。如下:

MyThread1.java

public class MyThread1 extends Thread { @Override public void run() {try { for (int i = 0; i < 100000; i++) {System.out.println('i = ' + (i+1)); } System.out.println('run begin'); //interrupt是做一個中斷標記,當時不會去中斷正在運行的線程,當該線程處于阻塞狀態時就會進行中斷 //因此,先進行interrupt后,再遇到sleep阻塞時,才會進行中斷 Thread.sleep(200000); System.out.println('run end');} catch (InterruptedException e) { System.out.println('先停止,再遇到了sleep! 進入catch!'); e.printStackTrace();} }}

Main1.java

public class Main1 { public static void main(String[] args) {MyThread1 myThread1 = new MyThread1();myThread1.start();myThread1.interrupt();System.out.println('end!'); }}

結果:i = 99993i = 99994i = 99995i = 99996i = 99997i = 99998i = 99999i = 100000run begin

先停止,再遇到了sleep! 進入catch!java.lang.InterruptedException: sleep interrupted at java.lang.Thread.sleep(Native Method) at com.book.sleep_interrupt.MyThread1.run(MyThread1.java:19)

四、停止線程方法3:stop()暴力停止

線程調用stop()方法會被暴力停止,方法已棄用。該方法會有不好的后果:

強制讓線程停止有可能使一些請理性的工作得不到完成。 對鎖定的對象進行了“解鎖”,導致數據得不到同步的處理,出現數據不一致的問題(比如一個方法加上了synchronized,并在其中進行了一個長時間的處理,而在處理結束之前該線程進行了stop(),則未完成的數據將沒有進行到同步的處理) 五、停止線程方法4:使用return停止線程

調用interrupt標記為中斷狀態后,在run方法中判斷當前線程狀態,如果為中斷狀態則return,能達到停止線程的效果。

備注:建議使用“拋異常”的方法來實現線程的停止,因為在catch塊中還可以將異常向上拋,使線程停止的事件得以傳播

參考:《Java多線程編程核心技術》

到此這篇關于詳解Java停止線程的四種方法的文章就介紹到這了,更多相關Java停止線程內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Java
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日韩亚洲国产欧美| 久久精品观看| 亚洲精品看片| 亚洲天堂日韩在线| 亚洲a级精品| 日韩高清中文字幕一区| 四虎国产精品免费久久| 日韩精品亚洲专区在线观看| 美国三级日本三级久久99 | 中文字幕在线免费观看视频| 国产中文欧美日韩在线| 四虎国产精品免费观看| 97欧美在线视频| 九九精品调教| 91成人超碰| 免费视频久久| 亚洲va久久| 国产精品玖玖玖在线资源| 欧美aaaaaa午夜精品| 日本不良网站在线观看| 亚洲一级特黄| 亚洲一二三区视频| 久久av资源| 久久久精品五月天| 欧美99久久| 综合精品一区| 国产精品流白浆在线观看| 狠狠久久伊人| 宅男在线一区| 在线观看一区| 麻豆成人91精品二区三区| 日韩欧美一区二区三区在线观看| 偷拍欧美精品| 日韩午夜视频在线| 精品九九久久| 亚洲欧美日韩精品一区二区| 欧美视频二区| 午夜精品成人av| 国产免费成人| 国产精品www.| 日韩三区在线| 亚洲精选91| 精品一区二区三区视频在线播放| 日韩欧美一区二区三区免费观看| 欧美中文日韩| 久久不卡日韩美女| 蜜臀久久99精品久久一区二区 | 日韩av二区在线播放| 美女在线视频一区| 999国产精品视频| 亚洲乱码视频| 中文在线资源| 日本伊人午夜精品| 国产96在线亚洲| 热久久国产精品| 激情综合五月| 久久国产精品99国产| 久久久久久亚洲精品美女| av亚洲免费| 久久69成人| 日韩专区欧美专区| 国产精品毛片一区二区在线看| 免费人成在线不卡| 伊人久久av| 日本在线视频一区二区| 久久激情一区| 国产激情一区| 免费视频一区二区| 国产成人久久精品一区二区三区| 久久av在线| 日韩免费福利视频| 日本国产一区| 欧美日韩国产在线一区| 麻豆视频一区| 亚洲tv在线| 欧美亚洲国产激情| 鲁大师精品99久久久| 亚洲精一区二区三区| 欧美日韩在线二区| 久久精品女人| 欧美天堂在线| 日韩午夜黄色| 国产精品久久久久蜜臀| 亚洲精品极品| 伊人久久大香线蕉av超碰演员| 久久中文字幕一区二区三区| 日本不卡视频一二三区| 亚洲欧美日韩一区在线观看| 欧美天堂视频| 国产精品v亚洲精品v日韩精品| 亚洲日本在线观看视频| 午夜国产欧美理论在线播放| 国产成人黄色| 国产精品久久亚洲不卡| 亚洲麻豆一区| 三级一区在线视频先锋| 午夜久久黄色| | 国产suv精品一区二区四区视频 | 国产精品久久久亚洲一区| 亚洲区国产区| 99re国产精品| 蜜桃视频欧美| 91精品久久久久久久久久不卡| 国产66精品| 久久久国产精品网站| 奇米色欧美一区二区三区| 男人操女人的视频在线观看欧美| 99在线精品免费视频九九视| 极品日韩av| 久久中文字幕av| 欧美二区视频| 欧美另类综合| 好吊视频一区二区三区四区| 激情婷婷欧美| 欧美日韩国产在线一区| 日韩亚洲精品在线| 蜜臀av免费一区二区三区| 一区二区三区视频免费观看| 精品日韩视频| 99久久婷婷| 秋霞影院一区二区三区| av亚洲一区二区三区| 成人日韩在线| 99成人在线视频| 久久精品国产99久久| 激情久久中文字幕| 女人av一区| 亚洲一区二区免费看| 亚洲一区观看| 亚洲三级网站| 久久精品99国产精品| 国产精品sss在线观看av| 精品国产乱码| 桃色av一区二区| 久久精品国产大片免费观看| 久久国产欧美| 午夜精品亚洲| 亚洲+小说+欧美+激情+另类| 欧美日韩夜夜| 精品网站aaa| 日韩欧美精品综合| 99久久九九| 天堂av在线一区| 日本成人在线不卡视频| 免费一级欧美片在线观看网站| 欧美韩日一区| 亚洲免费婷婷| 欧美日韩一区二区国产| 久久影院资源站| 日韩成人亚洲| 夜夜嗨一区二区| 欧美精品国产白浆久久久久| 国产福利一区二区精品秒拍| 亚洲国产成人二区| 亚洲精品午夜av福利久久蜜桃| 亚洲日产av中文字幕| 欧美激情三区| 久久久水蜜桃av免费网站| 午夜久久美女| 日韩精品第二页| 国产欧洲在线| 亚洲一区二区三区高清不卡| 91欧美极品| 国产v综合v| 亚洲18在线| 精品一区二区三区四区五区| 亚洲成人一区| 日韩高清中文字幕一区| 日韩电影在线视频| 丝袜诱惑制服诱惑色一区在线观看| 国产乱人伦精品一区| 亚洲成人av观看| 日韩高清一区在线| 日本久久综合| 视频一区二区不卡| 久久亚洲黄色| 亚洲欧美日韩视频二区| 久久精品国产免费| 99在线精品免费视频九九视| 国产高清亚洲| 日韩亚洲在线| 久久97久久97精品免视看秋霞| 影音先锋国产精品| 免费视频一区二区三区在线观看| 欧美特黄视频| 精品国产精品国产偷麻豆| 免费在线观看精品| 国产在线观看www| 亚洲精品乱码| 欧美成a人国产精品高清乱码在线观看片在线观看久 | 精品亚洲二区| 亚洲一区二区三区四区电影| 国产在线看片免费视频在线观看| 视频一区在线视频| 国产精品黑丝在线播放| 日韩欧美在线精品| 欧美精品一二| 国语精品一区| 日韩av一区二区三区四区|