多线程----Runnable接口

时间:2022-11-12 15:40:41

创建线程方式—实现Runnable接口

创建线程的另一种方法是声明实现 Runnable 接口的类。该类然后实现 run 方法。

然后创建Runnable的子类对象,传入到某个线程的构造方法中,开启线程。

 

线程步骤

1、定义类实现Runnable接口。

2、覆盖接口中的run方法。。

3、创建Thread类的对象

4、将Runnable接口的子类对象作为参数传递给Thread类的构造函数。

5、调用Thread类的start方法开启线程。

 

实例

public class Demo02 {

    public static void main(String[] args) {

        //创建线程执行目标类对象

        Runnable runn = new MyRunnable();

        //将Runnable接口的子类对象作为参数传递给Thread类的构造函数

        Thread thread = new Thread(runn);

        Thread thread2 = new Thread(runn);

        //开启线程

         thread.start();

        thread2.start();

        for (int i = 0; i < 10; i++) {

           System.out.println("main线程:正在执行!"+i);

        }

    }

}

l  自定义线程执行任务类

public class MyRunnable implements Runnable{

 

    //定义线程要执行的run方法逻辑

    @Override

    public void run() {

       

        for (int i = 0; i < 10; i++) {

           System.out.println("我的线程:正在执行!"+i);

        }

    }

}

 

 实现Runnable的好处

 

实现Runnable接口的方式,更加的符合面向对象,

线程分为两部分,一部分线程对象,一部分线程任务。

 

线程内部类使用

l  方式1:创建线程对象时,直接重写Thread类中的run方法

        new Thread() {

           publicvoid run() {

               for (int x = 0; x < 40; x++) {

                   System.out.println(Thread.currentThread().getName()

                           + "...X...." + x);

               }

           }

        }.start();

 

l  方式2:使用匿名内部类的方式实现Runnable接口,重新Runnable接口中的run方法

        Runnable r = new Runnable() {

           publicvoid run() {

               for (int x = 0; x < 40; x++) {

                   System.out.println(Thread.currentThread().getName()

                           + "...Y...." + x);

               }

           }

        };

        new Thread(r).start();