02 实现Runnable接口

langQ / 2024-04-23 / 原文

实现Runnable接口

推荐使用Runnable对象,因为Java单继承的局限性。

TestThread03.java

package com.mysoft.demo01;

//创建线程方式2:实现runnalbe接口,重写run方法,执行线程需要丢入runnable接口实现类。调用start方法。
public class TestThread03 implements Runnable {
    @Override
    public void run() {
        //run方法线程体
        for (int i = 0; i < 1000; i++) {
            System.out.println("我在看代码---" + i);
        }
    }

    public static void main(String[] args) {
        //创建runnable接口的实现类对象。
        TestThread03 testThread03 = new TestThread03();

        //创建线程对象,通过线程对象来开启我们的线程,代理。
        //Thread thread = new Thread(testThread03);
        //thread.start();
        new Thread(testThread03).start();

        for (int i = 0; i < 1000; i++) {
            System.out.println("我在学习多线程----" + i);
        }

    }
}

实行结果的一部分:

...
我在看代码---16
我在看代码---17
我在看代码---18
我在看代码---19
我在学习多线程----0
我在看代码---20
我在学习多线程----1
我在看代码---21
我在学习多线程----2
我在看代码---22
我在学习多线程----3
我在看代码---23
我在学习多线程----4
我在看代码---24
我在学习多线程----5
我在看代码---25
...

两个for循环的输出是交错输出的。
 

小结:

继承Thread类 和 实现Runnable接口 两者的区别:
实现Runnable接口:方便同一个对象被多个线程使用。