博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Thread类的sleep()/wait()方法等对中断的处理
阅读量:3515 次
发布时间:2019-05-20

本文共 960 字,大约阅读时间需要 3 分钟。

Thread类的sleep(),wait()等方法,在接收到interrupt()方法中断时,会抛出异常,同时会将中断标志置为false,如果确实需要中断该线程,则应该在捕捉到异常后,继续调用interrupt()方法进行中断。

为什么不在异常时直接中断线程呢?主要是为了防止线程的资源没有得到释放而中断了线程
public class UserThread extends Thread(){
public void run(){
while(!isInterrupt()){
try{
Thread.sleep(1000); }catch(InterruptedException ex){
System.out.println(Thread.currentThread().getName+" Exception ,interrupt flag is "+isInterrupted()); //释放资源 doRelease(); interrupt(); e.printStackTrace(); } System.out.println(Thread.currentThread().getName+" runing"); } System.out.println(Thread.currentThread().getName+" interrupt flag is "+isInterrupted()); } public static void main(String args){
UserThread thread = new UserThread(); thread.start(); Thread.sleep(30); thread.interrupt(); }}

转载地址:http://mmcqj.baihongyu.com/

你可能感兴趣的文章
小甲鱼Python第二十三讲、第二十四讲(递归-这帮小兔崽子、汉诺塔)
查看>>
小甲鱼Python第二十五讲、第二十六讲(字典)
查看>>
小甲鱼Python第二十七讲(集合)
查看>>
2020光学期刊一区二区影响因子发布(科睿唯安)
查看>>
可调谐半导体激光器的窄线宽测试及压缩
查看>>
matlab中 %d,%f,%c,%s
查看>>
常见的光纤接头汇总
查看>>
半导体激光器—问题整理(二)
查看>>
科研日记7.31
查看>>
问题整理3
查看>>
zemax仿真二向色镜
查看>>
stm32单片机编程时extern的用法
查看>>
UART4和5的问题
查看>>
Spring框架中在并发访问时的线程安全性
查看>>
网站部署
查看>>
什么情况下会发生栈内存溢出。
查看>>
何为去中心化
查看>>
本地缓存的优缺点
查看>>
缓存一致性:写策略
查看>>
Cache一致性:MESI
查看>>