亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

最后的思考題

所以除了設置狀態標志,還有什么退出線程的方法呢???

正在回答

5 回答

在catch中再次調用interrupt()就OK了

7 回復 有任何疑惑可以回復我~
#1

我是貓_夏 提問者

非常感謝!
2018-07-18 回復 有任何疑惑可以回復我~
#2

慘的一

想問一下這個是什么原理
2018-09-24 回復 有任何疑惑可以回復我~
#3

霸氣小肆毛 回復 慘的一

當重新調用子線程的interrupt()方法時,也就是重新給子線程的中斷狀態設置為true,則子線程的isInterrupted()方法或者interrupted()方法能夠正確返回子線程的中斷狀態(為true),然后while循環中不滿足,就可以退出循環,結束線程了
2019-03-30 回復 有任何疑惑可以回復我~

也可以在catch中寫一個 break;

1 回復 有任何疑惑可以回復我~

在catch中加入interruput()后,有點不太明白,退出是能退出,但是Thread running少打印了一次啊

0 回復 有任何疑惑可以回復我~
#1

我愛孫佳怡

剛才試了下,沒錯,沒少打印,自己看錯了
2019-05-22 回復 有任何疑惑可以回復我~

package imooc.concurrent;


public class WrongWayStopThread extends Thread {

public static void main(String[] args) {


WrongWayStopThread thread = new WrongWayStopThread();

System.out.println("Staring thread...");

thread.start();


try {

Thread.sleep(3000);

} catch (InterruptedException e) {

e.printStackTrace();

}

System.out.println("Interrupting thread...");

thread.interrupt();

try {

Thread.sleep(3000);

} catch (InterruptedException e) {

e.printStackTrace();

}

thread.keepRunning=false;


System.out.println("Stopping application...");

}


public volatile boolean keepRunning = true;


public void run() {


while (keepRunning) {

System.out.println("Thread is running...");

long time = System.currentTimeMillis();

while (System.currentTimeMillis() - time < 1000) {


}


}

}

}


2 回復 有任何疑惑可以回復我~

還有就是用try{}catch{}把while循環包起來

1 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

最后的思考題

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號