以下程序运行报错 ,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是静态方法,无需指定具体线程,因为只能操作当前线程