Thread类 和Runnable接口的区别
实现Runnable接口创建多线程程序的好处:
1.避免单继承的局限性
一个类只能继承一个类(一个人只有一个亲爹)类继承了Thread类就不继承其他的类
实现了Runnable接口,还可以继承其他的类,实现其他的接口
2.增强程序的拓展性,降低了程序的耦合性
实现runnable接口的方式,把设置线程任务和开启新线程进行了分离
实现类中,重写了run方法:用来设置线程任务
创建Thread类对象,调用Start方法,用来开启新线程。
public class Demo01Runnable { public static void main(String[] args) { //3.创建一个runnable接口的实现对象 RunnableImpl run=new RunnableImpl(); //4.创建Thread类对象,构造方法中传递Runnable接口的实现类对象。 //Thread t=new Thread(run); Thread t=new Thread(new RunnableImpl2()); //5.调用Thread类中的start方法,开启新的线程执行run方法 t.start(); for (int i = 0; i <20 ; i++) { System.out.println(Thread.currentThread().getName()+"-->"+i); } } }
//1.创建一个Runnable 接口的实现类。 public class RunnableImpl2 implements Runnable{ //2.在实现类中重写runnable接口的run方法,设置线程任务。 @Override public void run() { for (int i = 0; i < 20; i++) { System.out.println("hello"); } } }