執行緒中斷測試

2021-09-27 07:30:54 字數 1899 閱讀 3612

package test.liuwei;

import lombok.extern.slf4j.slf4j;

/** * @author liuwei

* @date 2019-09-20 16:05

* @desc 執行緒中斷測試

* 為測試中斷執行緒,目標執行緒需進行耗時操作,以使得持有目標執行緒引用的主線程發出中斷命令時目標執行緒尚處於執行狀態

*/@slf4j

public class threadinterrupttest

public static void interruptedstatustest()

log.info("!!!!!!當前執行緒被中斷");

log.info("****在捕獲中斷異常之前,當前執行緒的中斷狀態為:"+current.isinterrupted());

}} catch (interruptedexception e) }}

});th1.start();

try catch (interruptedexception e)

th1.interrupt();

}public static void basictest() catch (interruptedexception e)

}},"我是乙個呼叫\"丟擲中斷異常的方法\"的執行緒");

th1.start();

//目標執行緒2

thread th2 = new thread(new runnable()

},"我是乙個呼叫\"內部處理中斷異常的方法\"的執行緒");

th2.start();

//目標執行緒3

thread th3 = new thread(new runnable()

},"我是乙個呼叫\"內部忽略中斷異常的方法\"的執行緒");

th3.start();

//目標執行緒4

thread th4 = new thread(new runnable()

},"我是乙個呼叫\"內部沒有中斷異常的方法\"的執行緒1");

th4.start();

//目標執行緒5

thread th5 = new thread(new runnable()

},"我是乙個呼叫\"內部沒有中斷異常的方法\"的執行緒2");

th5.start();

//主線程休眠一段時間後打斷目標執行緒

try catch (interruptedexception e)

th1.interrupt();

th2.interrupt();

th3.interrupt();

th4.interrupt();

th5.interrupt();

//改變共享flag值,以使得子執行緒能夠退出迴圈

flag=false;

}private static void throwinterruptedexception() throws interruptedexception

log.info("****順利結束****");

}private static void hiddeninterruptedexception(boolean ifstopwhenexception) catch (interruptedexception e) else

}log.info("****index "+i+"****");

}log.info("****順利結束****");

}private static void nointerruptedexception1()

log.info("****順利結束****");

}private static void nointerruptedexception2()}}

}

多執行緒 執行緒中斷

設計思路 1,新建乙個執行緒,其啟動引數是要輸出其執行狀態。2,中斷主線程若干秒,讓新建執行緒持續運作。3,中斷新建執行緒,輸出起執行次數和執行狀態。int count 0 thread t2 new thread catch threadabortexception absortexception...

app測試 中斷測試

中斷測試要點 中斷指軟體在工作中被其他的任務或意外事件等情況終止推出,相應的測試即為中斷測試,中斷測試有人為中斷 新任務中斷以及意外中斷等幾種情況 中斷詳細包括以下 一.來電中斷 呼叫結束通話 被呼叫結束通話 通話結束通話 通話被結束通話 二 簡訊中斷 接收簡訊 檢視簡訊 三 其他中斷 藍芽 鬧鐘 ...

執行緒中斷interrupt

案例 這裡需要注意一下,try catch到interruptedexception e異常時,中斷訊號會被抹除,所以th.isinterrupted 如果執行在catch異常前,則isinterrupted為true,可以正常退出,否則中斷訊號抹除後,isinterrupted得到的值為false...