线程的2种使用方式:实现Runnable接口和继承Thread类
1.实现Runnable接口
实现Runnable接口,必须实现run方法,也是Runnable接口中的唯一一个方法
class Runner1 implements Runnable { public void run() { for (int i = 0; i < 20; i++) { System.out.println("Runner1:"+i); } } }
Runner1:0 Runner1:1 Runner1:2 Runner1:3 Runner1:4 Runner1:5
2.继承Thread类
看一下java的api文档,发现Thread类也是实现了Runnable接口,不过是在Thread类里面自己新加了一些自己的东西
class Thread1 extends Thread { public void run(){ for (int i = 0; i < 50; i++) { System.out.println("Thread1:"+i); } } }
那么,到底使用哪一种方法好呢?
当然,我们在工作中都会用接口编程,面向接口,是一种很灵活的编程思想,所以最好能使用到Runnable接口,使得更加灵活方便。
最好,定义一个Runnable实现类,然后放到Thread的构造方法,这样我们可以使用很多Thread的自定义方法。
public static void main(String[] args) { Runner1 r = new Runner1(); Thread thread = new Thread(r); thread.start(); } } class Runner1 implements Runnable { public void run() { for (int i = 0; i < 20; i++) { System.out.println("Runner1:"+i); } } }