学过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>
时间: 2024-10-29 19:10:49