Java线程实现Runnable接口

1,定义类实现Runnable接口。

2,覆盖接口中的run方法,将线程的任务代码封装到run方法中。

3,通过Thread类创建线程对象,并将Runnable接口的子类对象作为Thread类的构造函数进行传递

4,调用线程对象的start方法开启线程。

 

实现Runnable接口的好处

1,将线程的任务从线程的子类中分离出来,进行了单独的封装。

      按照面向对象的思想将任务的封装成对象。

2,避免了java单继承的局限性。

 

所以,创建线程的第二种方式较为常用。

ThreadDemo1.java

class Demo implements Runnable {
   public void run() {
      for (int i = 0; i < 100; i++) {
        System.out.println(Thread.currentThread().getName() + "。。。。" + i);
      }
   }
}

class ThreadDemo1 {
   public static void main(String[] args) {
      Demo d1 = new Demo();
      Demo d2 = new Demo();
      new Thread(d1, "旺财").start();
      new Thread(d2, "xiaoqiang").start();
   }
}

* 使用Runnable接口

*可以将CPU,代码和数据分开,形成清晰的模型;

*还可以从其他类继承;

*保持程序风格的一致性。

* 直接继承Thread

*不能再从其他类继承;

*编写简单,可以直接操纵线程,无需使用Thread.currentThread()。