1. java是单继承的,在某些情况下一个类可能已经继承了某个父类,这时在用继承Thread类方法来创建线程显然不可能了。
  2. java设计者们提供了另外一个方式创建线程,就是通过实现Runnable接口来创建线程

    案例:

    需求:

    请编写程序,该程序可以每隔1秒。在控制台输出“Once again!”,当输出5次后,自动退出。请使用实现Runnable接口的方式实现。【这里底层使用了设计模式,代理模式

    实现:

    ```java package test; /**
    • 通过实现接口Runnable 来开发线程 */ public class Main { public static void main(String[] args) { Obj obj = new Obj(); //obj.start(); 这里不能调用start //创建了Thread对象,把 obj对象(实现Runnable),放入Thread Thread thread = new Thread(obj); thread.start(); } }

class Obj implements Runnable { //通过实现Runnable接口,开发线程 int count = 0; @Override public void run() { //普通方法 while (true) { System.out.println(“Once again! “ + (++count) + Thread.currentThread().getName());

  1. //休眠1秒
  2. try {
  3. Thread.sleep(1000);
  4. } catch (InterruptedException e) {
  5. e.printStackTrace();
  6. }
  7. if (count == 5) {
  8. break;
  9. }
  10. }
  11. }

} ``` image.png