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

Runnable 接口 如果调用线程?
以下程序运行报错 ,MyRun 的sleep 如何指定是那个 Thread 的。
Java code
import java.util.*;
public class Testinterrupt
{
      public static void main(String [] args)
      {
        MyRun r = new MyRun();
        Thread t = new Thread(r);
        t.start();
      
        try
        {
              t.sleep(10000);
        }
        catch(InterruptedException e)
        {
            
        }
        t.interrupt();
        
      }
}

class MyRun implements Runnable
{
      public void run()
      {
           while(true)
           {
                  System.out.println("====="+new Date()+"========");

                  try 
                  {
                         sleep(1000);
                      }
                      catch(InterruptedException e)
                      {
                          return;
                      }
               }
      }
}


------解决方案--------------------
sleep是Thread的静态方法,可以通过Thread.sleep()直接调用。
t.sleep(10000); 这一句不用这写,直接换成Thread.sleep()即可。就表示对当前线程休眠。

报的错是MyRun类run方法的
sleep(1000); 
这句吗?换成Thread.sleep()
------解决方案--------------------
Java里的代码,只能控制自己当前的线程进行休眠,不能指定其它线程进行休眠

因此sleep是静态方法,无需指定具体线程,因为只能操作当前线程