标签:
学过Java的同学都知道,实现线程的方法有两种
1、继承Thread,代码简单,直接编写子类,然后new子类对象,调用父类的start()方法,
public class Demo {
public static void main(String[] args) {
Test t = new Test();
t.start();
}
static class Test extends Thread {
public void run() {
super.run();
System.out.println("run");
}
}
}
2、实现 Runnable 接口,解决Java单继承的局限性,可以多个线程共享这个Runnable 接口的对象(多线程处理同一资源文件,例如,迅雷下载,窗口售票)
public class Demo {
public static void main(String[] args) {
Thread t = new Thread(new Test());
t.start();
}
static class Test implements Runnable {
public void run() {
System.out.println("run");
}
}
}
<span style="font-size:18px;color:#ff0000;">public class Demo extends Thread implements Runnable {
public void run() {
super.run();
System.out.println("run");
}
public static void main(String[] args) {
Demo d=new Demo();
d.run();
}
}</span>
一个类同时继承了Thread类和Runnable,请问这还是一个多线程吗
回答是肯定的,这是多线程,但是上面写法是不正确的 , Thread类实现了Runnable接口的
上述代码,Demo是Thread的子类,Thread实现了Runnable接口,所以d也是实现了Runnable接口的一个对象,将上述代码修改一下,也是一个线程。
<span style="color:#009900;">public class Demo extends Thread implements Runnable {
public void run() {
super.run();
System.out.println("run");
}
public static void main(String[] args) {
Thread t = new Thread(new Demo());
t.start();
}
}</span>标签:
原文地址:http://blog.csdn.net/u013369232/article/details/45771919