某Java线程执行如下逻辑:当未被中断时循环打印消息,每次循环后休眠20ms,休眠期间若被中断则捕获异常并输出提示。主线程启动该线程后休眠100ms,随后中断子线程。假设所有代码正确执行,下列描述正确的是?
答案解析
核心考点:
1. 线程中断机制的双重检测特性
2. InterruptedException的异常处理流程
3. interrupted()方法的副作用
解题思路:
- Option A错误:interrupt()不是强制终止,而是设置中断标志
- Option B错误:主线程休眠100ms不保证子线程恰好处于sleep
- Option C正确:静态方法interrupted()会清除中断状态
- Option D错误:异常抛出后会退出循环(因中断状态被清除)
易错点:
1. 混淆interrupted()与isInterrupted()的行为差异
2. 未理解异常捕获后中断标志的清除机制
3. 未能区分中断请求与实际中断处理的时序关系
正确答案:C