以下程序运行,会输出什么?
public class TestThread {
public static void main(String[] args) {
Mythread mt=new Mythread();
MyRunable mr=new MyRunable();
Thread thread=new Thread(mr);
mt.start();
thread.start();
}
}
public class MyRunable implements Runnable {
public void run() {
System.out.println("MyRunable:run()");
}
public synchronized void start() {
System.out.println("MyRunable:start()");
}
}
public class Mythread extends Thread {
@Override
public void run() {
System.out.println("Mythread:run()");
}
@Override
public synchronized void start() {
System.out.println("Mythread:start()");
}
}
答案:
Mythread:start()
MyRunable:run()
线程的运行必须是使用start(),run()只是类一个方法。
但Runnable接口只需要实现run()方法,继承Runnable的类对象作为Thread类对象的构造方法,这个Thread类还是必须运行start()方法,但其会运行Runnable接口的run()方法