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

您的位置:首頁技術(shù)文章
文章詳情頁

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

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

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

如下示例:

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('已經(jīng)是停止?fàn)顟B(tài)了,我要退出了!'); throw new InterruptedException();}System.out.println('i = ' + (i+1)); } System.out.println('如果我被輸出了,則代表線程沒有停止');} catch (InterruptedException e) { System.out.println('在MyThread類中的run方法中被捕獲'); e.printStackTrace();} }}

Main.java

/** * 根據(jù)中斷狀態(tài)退出for循環(huán) * @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!'); }}

結(jié)果如下:i = 19115i = 19116i = 19117i = 19118i = 19119end!

已經(jīng)是停止?fàn)顟B(tài)了,我要退出了!在MyThread類中的run方法中被捕獲java.lang.InterruptedException at com.book.interrupt_exit.MyThread.run(MyThread.java:15)

Process finished with exit code 0

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

先將線程sleep,然后調(diào)用interrupt標(biāo)記中斷狀態(tài),interrupt會將阻塞狀態(tài)的線程中斷。會拋出中斷異常,達(dá)到停止線程的效果。如下示例:

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('在沉睡中被停止!進(jìn)入catch,線程的是否處于停止?fàn)顟B(tài):' + 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('狀態(tài):'+MyThread.interrupted()); myThread.interrupt();} catch (InterruptedException e) { e.printStackTrace();} }}

結(jié)果run-----------start狀態(tài):falsejava.lang.InterruptedException: sleep interrupted在沉睡中被停止!進(jìn)入catch,線程的是否處于停止?fàn)顟B(tài):false at java.lang.Thread.sleep(Native Method) at com.book.sleep_interrupt.MyThread.run(MyThread.java:13)

線程先調(diào)用interrupt標(biāo)記中斷狀態(tài),然后線程再睡眠。會拋出中斷異常,達(dá)到停止線程的效果。如下:

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是做一個中斷標(biāo)記,當(dāng)時不會去中斷正在運(yùn)行的線程,當(dāng)該線程處于阻塞狀態(tài)時就會進(jìn)行中斷 //因此,先進(jìn)行interrupt后,再遇到sleep阻塞時,才會進(jìn)行中斷 Thread.sleep(200000); System.out.println('run end');} catch (InterruptedException e) { System.out.println('先停止,再遇到了sleep! 進(jìn)入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!'); }}

結(jié)果:i = 99993i = 99994i = 99995i = 99996i = 99997i = 99998i = 99999i = 100000run begin

先停止,再遇到了sleep! 進(jìn)入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()暴力停止

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

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

調(diào)用interrupt標(biāo)記為中斷狀態(tài)后,在run方法中判斷當(dāng)前線程狀態(tài),如果為中斷狀態(tài)則return,能達(dá)到停止線程的效果。

備注:建議使用“拋異常”的方法來實(shí)現(xiàn)線程的停止,因?yàn)樵赾atch塊中還可以將異常向上拋,使線程停止的事件得以傳播

參考:《Java多線程編程核心技術(shù)》

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

標(biāo)簽: Java
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产三级一区| 91久久久久| 麻豆一区二区三区| 加勒比视频一区| 神马久久午夜| 午夜国产精品视频免费体验区| 久久最新视频| 欧美精品福利| 欧美男人天堂| 麻豆亚洲精品| 国产精品久久久久久妇女| 蜜桃久久久久| 欧美三级精品| 综合激情在线| 国产精品久久777777毛茸茸| 久久久五月天| 日韩av中文字幕一区| 麻豆国产在线| 亚洲一区中文| 国产伊人精品| 日韩精品成人| 国产伊人久久| 99在线精品免费视频九九视 | 美女网站一区| 蜜桃tv一区二区三区| 国产伦理久久久久久妇女| 久久不见久久见中文字幕免费| 天堂√8在线中文| 快she精品国产999| 国内一区二区三区| 欧美伊人影院| 鲁大师影院一区二区三区| 久久精品国产亚洲aⅴ| 中国女人久久久| 国产成人精品三级高清久久91| 日韩精品视频网| 正在播放日韩精品| 亚洲色图国产| 麻豆精品在线| 日韩中文字幕1| 国产伦久视频在线观看| 日韩三级精品| 综合激情网站| 日韩成人a**站| 国产毛片久久| 国产精品密蕾丝视频下载| 午夜av成人| 国产精品免费大片| 久久久久.com| 国产精品一区二区av交换| 伊人影院久久| 国产在线看片免费视频在线观看| 亚洲精品女人| 麻豆91在线播放| 亚洲一区二区av| 日韩亚洲一区在线| 久久精品xxxxx| 蜜桃视频在线观看一区| 日韩精品欧美| 国产不卡精品| 国产在线视频欧美一区| 国产日韩一区二区三免费高清| 青草综合视频| 日本高清不卡一区二区三区视频 | 亚洲成人二区| 日本v片在线高清不卡在线观看| 国产伦理久久久久久妇女| 999国产精品视频| 国产精品亚洲人成在99www| av免费不卡国产观看| 日本成人中文字幕| 黄色aa久久| 日韩精品久久久久久| 日韩一区二区在线免费| 电影91久久久| 性欧美长视频| 影视先锋久久| 色婷婷狠狠五月综合天色拍| 风间由美中文字幕在线看视频国产欧美| 中文字幕av一区二区三区四区| 最新国产拍偷乱拍精品| 国产精品精品| 国产精品嫩模av在线| 日本一不卡视频| 中文字幕高清在线播放| 久久精品国产亚洲aⅴ| 91精品国产一区二区在线观看| 国产精品呻吟| 色综合www| 国产精品毛片久久| 精品久久亚洲| 久久女人天堂| 你懂的国产精品| 国产麻豆精品| 国产日韩三级| 日本午夜精品一区二区三区电影 | 精品国产日韩欧美精品国产欧美日韩一区二区三区 | 亚洲理论在线| 水蜜桃久久夜色精品一区的特点 | 欧美激情精品| 国产精品伦一区二区| 国产美女视频一区二区| 国产欧美一区二区三区米奇| 欧美日韩亚洲一区| 免费观看亚洲天堂| 日韩中文欧美在线| 久久久精品网| 欧美日韩亚洲一区二区三区在线| 亚洲精品一区二区在线看| 狠狠久久伊人中文字幕| 日本成人在线一区| 亚洲精品婷婷| 亚洲精品小说| 97se亚洲| 日韩精品成人在线观看| 国产欧美啪啪| 国产在视频一区二区三区吞精| 国语精品一区| 日本少妇一区| 伊人精品视频| 亚洲精品一二三**| 国产极品一区| 中文字幕在线免费观看视频| 电影天堂国产精品| 夜久久久久久| 婷婷视频一区二区三区| 亚洲精品乱码| 欧美日本不卡高清| 精品一区视频| 日韩精品免费一区二区在线观看| 不卡中文字幕| 亚洲v天堂v手机在线| 欧美黄色精品| 中文字幕系列一区| 久热精品在线| 久久狠狠久久| 国产一区二区三区91| 久久人人88| 视频一区二区国产| 日本午夜精品视频在线观看| 国产成人精品一区二区免费看京| 播放一区二区| 亚洲免费福利| 水蜜桃精品av一区二区| 今天的高清视频免费播放成人| 成人日韩在线| 日韩成人午夜精品| 奇米狠狠一区二区三区| 四虎影视精品| 亚洲精品在线影院| 国内精品99| 亚洲免费播放| 日韩中文字幕区一区有砖一区| 综合干狼人综合首页| 欧美亚洲三级| 久久av影院| av在线最新| 日韩欧美一区二区三区在线视频| 欧美色图国产精品| 亚洲区欧美区| 欧美激情视频一区二区三区在线播放| 亚洲免费福利| 久久成人精品| 国产精品一区二区精品视频观看 | 免费毛片在线不卡| 久久精品影视| 亚洲精品国产嫩草在线观看 | 九一成人免费视频| 在线精品观看| 国产精品3区| 美女一区网站| 中文一区一区三区免费在线观| 国产欧美日韩在线观看视频| 91一区二区三区四区| 伊人影院久久| 国产精品1luya在线播放| 7777精品| 高清一区二区| 免费精品视频在线| 欧美成人a交片免费看| 日本成人手机在线| 午夜久久久久| 成人午夜网址| 日韩精品福利一区二区三区| 高清不卡亚洲| 亚洲91在线| 欧美不卡高清一区二区三区| 亚洲一区二区av| www.51av欧美视频| 亚洲麻豆一区| 亚洲啊v在线| 午夜电影一区| 丝袜亚洲另类欧美| 久久精品日韩欧美| 欧美成人国产| 亚洲欧美日韩高清在线| 久久精品国产久精国产| 国产99久久| 国产亚洲高清一区| 午夜日韩av|