日期:2014-05-20  浏览次数:20743 次

sleep() 和Thread.sleep()疑惑,请大家指点!

public class ThreadTest2 implements Runnable{
public void run(){
System.out.println("My thread2 is running...");
}

public static void main(String[] args) {

//把Runnable接口的实现类作为参数,构造Thread对象。
Thread t=new Thread(new ThreadTest2()); 
t.start();

try{
Thread.sleep(3000); //sleep()为Thread类的静态方法
}catch(InterruptedException e){
e.printStackTrace();
}

//返回当前线程的字符串表示形式
String str=Thread.currentThread().toString();  
System.out.println(str);
System.out.println("Main thread is running...");
}
}

-------------------------------------------------------
上边一段代码中,sleep()方法必须用Thread调用,这我能理解,
但是为什么其他类里只用sleep()不报错,这里只用sleep()就报错呢?
原因在哪里呢?



------解决方案--------------------
因为你这是实现Runnable接口,Runnable接口里没有sleep()方法,如果你是继承Thread类,就可以直接只用sleep()了,因为Thread类里有sleep()方法