java基礎:執行緒方法之interrupt和sleep
一:直接看demo
public class MyThread extends Thread{
@Override
public void run() {
boolean flag = true;
while (flag) {
System.out.println("-------"+new Date()+"----");
try {
sleep(1000);
} catch (InterruptedException e) {
flag = false;
//run方法一結束,執行緒終止
}
}
}
}
public class TestInterrupt {
public static void main(String[] args) {
MyThread thread = new MyThread();
thread.start();
try {
//Thread方法在哪個執行緒呼叫,就表示哪個執行緒。這裡是在mian主執行緒
Thread.sleep(10000);
} catch (InterruptedException e) {
}
//打斷thread執行緒
thread.interrupt();
}
}
輸出結果:
-------Tue Feb 03 19:57:02 CST 2015----
-------Tue Feb 03 19:57:03 CST 2015----
-------Tue Feb 03 19:57:04 CST 2015----
-------Tue Feb 03 19:57:05 CST 2015----
-------Tue Feb 03 19:57:06 CST 2015----
-------Tue Feb 03 19:57:07 CST 2015----
-------Tue Feb 03 19:57:08 CST 2015----
-------Tue Feb 03 19:57:09 CST 2015----
-------Tue Feb 03 19:57:10 CST 2015----
-------Tue Feb 03 19:57:11 CST 2015----
-------Tue Feb 03 19:57:03 CST 2015----
-------Tue Feb 03 19:57:04 CST 2015----
-------Tue Feb 03 19:57:05 CST 2015----
-------Tue Feb 03 19:57:06 CST 2015----
-------Tue Feb 03 19:57:07 CST 2015----
-------Tue Feb 03 19:57:08 CST 2015----
-------Tue Feb 03 19:57:09 CST 2015----
-------Tue Feb 03 19:57:10 CST 2015----
-------Tue Feb 03 19:57:11 CST 2015----
可以看出,10秒後,執行緒終止 ,thread.interrupt();表示打斷執行緒。
二:知識點
(1)Thread.sleep(10000);Thread方法在哪個執行緒呼叫,就表示哪個執行緒。這裡是在mian主執行緒
(2)sleep方法的底層實現:throws InterruptedException
public static native void sleep(long millis) throws InterruptedException;
所以在呼叫sleep方法時,必須對其異常進行捕獲。
(3)interrupt()打斷終止執行緒,很粗暴!
(4)sleep()休眠一段時間,並不是終止!
相關文章
- java執行緒執行緒休眠,sleep方法Java執行緒
- java 多執行緒之使用 interrupt 停止執行緒的幾種方法Java執行緒
- java多執行緒基礎篇(wait、notify、join、sleep、yeild方法)Java執行緒AI
- Java基礎之執行緒安全Java執行緒
- Java基礎之執行緒那些事Java執行緒
- 執行緒中斷方法interrupt() 與 cancel()執行緒
- Java多執行緒/併發08、中斷執行緒 interrupt()Java執行緒
- Java的Interrupt與執行緒中斷Java執行緒
- Java 執行緒基礎Java執行緒
- java基礎:執行緒Java執行緒
- Java - 執行緒基礎Java執行緒
- 執行緒-sleep()執行緒
- Java執行緒池一:執行緒基礎Java執行緒
- java基礎:執行緒方法之yield方法Java執行緒
- 【轉】理解java執行緒的中斷(interrupt)Java執行緒
- JAVA多執行緒和併發基礎Java執行緒
- java基礎:執行緒方法之joinJava執行緒
- java - 多執行緒基礎Java執行緒
- 【Java基礎】:執行緒控制Java執行緒
- Java—多執行緒基礎Java執行緒
- java基礎:執行緒同步Java執行緒
- Java 多執行緒基礎(四)執行緒安全Java執行緒
- java基礎之執行緒 認識volatileJava執行緒
- java基礎之執行緒 認識原子類Java執行緒
- Java 多執行緒基礎(十一)執行緒優先順序和守護執行緒Java執行緒
- 【Java基礎】:執行緒的建立和啟動Java執行緒
- 【Java基礎】執行緒和併發機制Java執行緒
- Java 多執行緒基礎(八)執行緒讓步Java執行緒
- android執行緒start()、interrupt()之重複使用Android執行緒
- 多執行緒基礎之synchronized和volatile執行緒synchronized
- 多執行緒面試題之sleep()和wait()方法有什麼區別?執行緒面試題AI
- Systrace 執行緒 CPU 執行狀態分析技巧 - Sleep 和 Uninterruptible Sleep 篇執行緒
- Java 基礎(十四)執行緒——下Java執行緒
- Java 多執行緒基礎 - CyclicBarrierJava執行緒
- Java多執行緒-基礎篇Java執行緒
- Java 基礎(十三)執行緒——上Java執行緒
- [Java基礎]虛擬執行緒Java執行緒
- Java 多執行緒設計模式之基礎概念Java執行緒設計模式