方法一:
public class Test implements Runnable{
public void run() {
System.out.println("线程启动!");
}
public static void main(String[] args) {
Test thead = new Test();
thead.run();
//thead.start();不能调用start方法
}
}
输出结果:线程启动!
public class Test implements Runnable{
public void run() {
System.out.println("线程启动!");
}
public static void main(String[] args) {
Test thead = new Test();
Thread t = new Thread(thead);
thead.run();
t.start();
}
}
输入结果:线程启动!线程启动!
public class Test implements Runnable{
public void run() {
System.out.println("线程启动!");
}
public static void main(String[] args) {
Test thead = new Test();
Thread t = new Thread(thead);
t.run();
t.start();
}
}
输入结果:线程启动!
线程启动!
由以上看出,start()方法存在于Thread这个类中,想要调用start()方法必须使用Thread这个类。
方法二:
public class Test extends Thread{
public void run() {
System.out.println("线程启动!");
}
public static void main(String[] args) {
Test thead = new Test();
thead.start();
}
}
让测试类Test直接继承Thread类,就不用实例化Thread对象,而直接调用start方法。
PS:1.推荐使用实现Runnable接口,类实现了Runnable接口还能实现或者继承其他接口或者类,使用起来比较灵活方便。
2.start()是使线程之间同步执行
run()是使run()方法先执行,后再执行其他线程