社区
Java SE
帖子详情
主方法中 Thread.sleep ,为什么 catch不执行
分分种123
2017-06-14 07:19:04
public class TestThread1 {
public static void main(String[] args){
try{
Thread.sleep(10000);
}catch(Exception e){
System.out.println("asdb");
}
}
}
System.out.println("asdb"); 这一句为什么不执行呢, sleep 不是一定会抛异常吗
...全文
477
6
打赏
收藏
主方法中 Thread.sleep ,为什么 catch不执行
public class TestThread1 { public static void main(String[] args){ try{ Thread.sleep(10000); }catch(Exception e){ System.out.println("asdb"); } } } System.out.println("asdb"); 这一句为什么不执行呢, sleep 不是一定会抛异常吗
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
fei550223122
2017-06-15
打赏
举报
回复
这个没有抛异常,是等待10秒钟后try继续进行,你可以在Thread.sleep(10000);后再加个打印看看
okiq123
2017-06-15
打赏
举报
回复
sleep 方法并不会进入异常,所以catch不到,只有在sleep状态中停止该线程,才会产生异常。进入catch
110成成
2017-06-15
打赏
举报
回复
请说明下为什么Sleep就一定会抛异常。
Gere Yeung
2017-06-15
打赏
举报
回复
异常未发生,当然不执行 catch 语句
逗比123号
2017-06-15
打赏
举报
回复
你在sleep前面加一个interrupt就会执行了
Emiya_Alter
2017-06-14
打赏
举报
回复
并不是一定会抛出异常, 只是被中断的时候才会抛出异常
Thread
.
sleep
()为什么要抛出
中
断异常
当然是为了让你的代码具有响应
中
断信号的能力! 目录 从场景说起 响应
中
断 关闭线程池 从场景说起 假设
sleep
()
方法
不抛出
中
断异常,也就是线程没有
中
断响应能力,会怎么样? 考虑如下场景: 线程A:
sleep
中
线程B:A别睡了,要关机啦(向A发送
中
断信号) 线程A:
sleep
中
这样好吗?这不好。因为线程A对外界情况没有感知能力。
中
断就起到了这样的作用:让线程具有感知的能力。
sleep
(),wait()等
方法
都需要你去处理
中
断异常,也就是需要你的代码能够响应
中
断。 响应
中
断
Thread
类的介绍
本文介绍了Java
中
线程的基本概念和创建方式。线程是操作系统
中
的
执行
流,Java通过
Thread
类封装了线程操作。文章详细讲解了6种创建线程的
方法
:继承
Thread
类、实现Runnable接口、匿名内部类、Lambda表达式、Callable接口与FutureTask、线程池(Executor框架)。同时阐述了
Thread
类的常用
方法
,包括start()启动线程、interrupt()
中
断线程、join()等待线程、
sleep
()休眠线程等。文章还分析了线程的状态转换(NEW、TERMINATED、RUNN
java
sleep
异常_java – 为什么需要处理
Thread
.
sleep
()的异常?
如果以一种方式声明
方法
可以抛出已检查的异常(异常不是RuntimeException的子类),调用它的代码必须在try-
cat
ch
块
中
调用它,或者调用
方法
必须声明抛出它.public static void
sleep
(long millis) throws InterruptedException;为什么
Thread
.
sleep
()以这种方式声明?因为如果
Thread
正在睡眠,线程可能被
中
断,例...
java
sleep
异常_java – 为什么需要处理
Thread
.
sleep
()的异常?
如果以一种方式声明
方法
可以抛出已检查的异常(异常不是RuntimeException的子类),调用它的代码必须在try-
cat
ch
块
中
调用它,或者调用
方法
必须声明抛出它.public static void
sleep
(long millis) throws InterruptedException;为什么
Thread
.
sleep
()以这种方式声明?因为如果
Thread
正在睡眠,线程可能被
中
断,例...
多线程(一) - Java线程(二) -
Thread
类
方法
详解:
sleep
、yield、优先级等
Thread
类
中
的
方法
调用方式: 学习
Thread
类
中
的
方法
是学习多线程的第一步。在学习多线程之前特别提出一点,调用
Thread
中
的
方法
的时候,在线程类
中
,有两种方式,一定要理解这两种方式的区别: 1.this.XXX() 这种调用方式表示的线程是线程实例本身 2.
Thread
.current
Thread
.XXX()或
Thread
.XXX() 上面两种写法是一样的意思。这种调用方式表示的线程是正在
执行
Thread
.current
Thread
.XXX()所在代码块的线程 当然,这么说,肯定有人不理解两者之间的
Java SE
62,620
社区成员
307,251
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章