关于线程的代码问题,求解一下

wwy4056121711 2016-11-30 04:41:31
package xc;
import java.util.*;
public class TextInterrupt {
class MyThread implements Runnable {
public void run(){
while(true){
System.out.println("------"+new Date()+"------");
}
try{
sleep(1000);
}catch(InterruptedException e){
return;
}

}
}
public static void main(String[] args) {
MyThread thread=new MyThread();
Thread t=new Thread(thread);
t.start();
try{
sleep(t.sleep(10000);)
}catch(InterruptedException e){
t.interrupt();
}
}
}
...全文
386 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
Knight-2020 2016-12-01
  • 打赏
  • 举报
回复
3楼讲的很清楚了。 sleep是Thread类的静态方法。sleep的作用是让线程休眠制定的时间,在时间到达时恢复,也就是说sleep将在接到时间到达事件事恢复线程执行。 你的这个代码把两个sleep(1000)、sleep(t.sleep(10000);)可以改写为Thread.sleep(1000)和Thread.sleep(10000)可能就行。
萧乡月夜 2016-12-01
  • 打赏
  • 举报
回复
把 implements Runnable 改成 extends Thread就可以了 sleep方法是Thread类独有的,这里继承Runnable接口类本身就没有sleep方法了。
-CheNbXxx 2016-12-01
  • 打赏
  • 举报
回复
前面用sleep的时候可以用Thread.sleep
-CheNbXxx 2016-12-01
  • 打赏
  • 举报
回复
我也是新手。。sleep函数是void的 参数是long的。。 下面那个sleep看不懂
-CheNbXxx 2016-12-01
  • 打赏
  • 举报
回复
为什么我感觉 你运行不到try-catch语句。。。不是一直while(true)循环吗。。。
NewshiJ 2016-12-01
  • 打赏
  • 举报
回复
要用sleep的话应是 Thread.currentThread().sleep(1000);这样调用的
Knight-2020 2016-12-01
  • 打赏
  • 举报
回复

这是 修改你的代码后。。正确的运行。
爱睡觉的阿狸 2016-12-01
  • 打赏
  • 举报
回复
sleep方法应该是Thread.sleep(1000)这样调用
rickylin86 2016-11-30
  • 打赏
  • 举报
回复
class MyThread implements Runnable MyThread实现Runnable接口.这个接口对应的只有run()方法.没有sleep方法.所以你在run中调用sleep会报错. 另外你意思在while(true)中输出.然后把线程sleep()方法放到while循环外,这样也过不了编译. 还有就是sleep()作为Thread的一个静态方法,没必要用实例对象来调用. 所以我实在不明白你在main中的 sleep(t.sleep(10000);) 这句代码想要实现的目的是什么. 上面的错误,先把编译这关过了,如果编译都过不了就谈不上执行了
wwy4056121711 2016-11-30
  • 打赏
  • 举报
回复
wwy4056121711 2016-11-30
  • 打赏
  • 举报
回复
sleep(1000)和t.sleep(10000);报错,我按马士兵的代码打的,可是不知道错在哪

62,612

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧