为了账号安全,请及时绑定邮箱和手机立即绑定

如下程序,为什么两端程序中有关sleep()的语句都会报错呢?

如下程序,为什么两端程序中有关sleep()的语句都会报错呢?

动漫人物 2022-05-19 13:15:59
两种创建线程的方法,具体如下public class MainRunT{public static void main(String[] args){MyThread mt= new MyThread();mt.start();for(int a=0;a<3;a++){System.out.println("t"+a);}}}class MyThread extends Thread{int i;public void run(){while(true){System.out.println("aaa"+i++);this.sleep(1000);if(i==5)break;}}}第二种public class MainRun{public static void main(String[] args){MyThread mt = new MyThread();Thread t = new Thread(mt);t.start();for(int a=0;a<3;a++){System.out.println("Tt"+a);}}}class MyThread implements Runnable{int i;public void run(){while(true){System.out.println("Aa"+i++);Thread.currentThread().sleep(1000);if(i==5)break;}}}问题:1。是先运行完main中的内容,再调用run()中的内容,还是遇到start()就调用run()的内容?2。为什么两端程序中有关sleep()的语句都会报错“未处理的异常类型 InterruptedException”谢谢,在线等。
查看完整描述

3 回答

?
红颜莎娜

TA贡献1842条经验 获得超12个赞

Thread.currentThread().sleep(1000);?
sleep()方法是静态(类)方法,不是实例方法,应该是Thread.sleep(1000);sleep()方法会抛出InterruptedException异常,你不处理,当然会报错
如果是先运行完main中的内容,再调用run()中的内容,那就不是多线程了,而是遇到start()就调用run()的内容,也就是说是多个线程并发(交替)运行

查看完整回答
反对 回复 2022-05-23
?
喵喵时光机

TA贡献1846条经验 获得超7个赞

线程,当使用start()开启线程后,主main继续向下执行,同时线程一起运行。(main主线程和开启的线程并行)
sleep()方法要抛出InterruptedException,比必须处理,可以在main方法头后面加 throws Exception把异常抛到控制台或者try catch处理异常

查看完整回答
反对 回复 2022-05-23
?
慕姐4208626

TA贡献1852条经验 获得超7个赞

要放在try catch语句结构中

查看完整回答
反对 回复 2022-05-23
  • 3 回答
  • 0 关注
  • 311 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信