Java多线程-通过实现 Runnable 接口来创建线程

2021-10-26 11:21:07 浏览数 (1)

创建一个线程,最简单的方法是创建一个实现 Runnable 接口的类。

为了实现 Runnable,一个类只需要执行一个方法调用 run(),声明如下:

代码语言:javascript复制
public void run()

你可以重写该方法,重要的是理解的 run() 可以调用其他方法,使用其他类,并声明变量,就像主线程一样。

在创建一个实现 Runnable 接口的类之后,你可以在类中实例化一个线程对象。

Thread 定义了几个构造方法,下面的这个是我们经常使用的:

代码语言:javascript复制
Thread(Runnable threadOb,String threadName);

这里,threadOb 是一个实现 Runnable 接口的类的实例,并且 threadName 指定新线程的名字。

新线程创建之后,你调用它的 start() 方法它才会运行。

代码语言:javascript复制
void start();
代码语言:javascript复制
package com.joshua317;

public class Main {

    public static void main(String[] args) {
        for (int i = 1; i <= 2; i  ) {
            RunnableDemo R1 = new RunnableDemo( "Thread-"   i);
            R1.start();
        }

    }
}

class RunnableDemo implements Runnable {
    private String threadName;
    private Thread t;

    RunnableDemo(String name){
        threadName = name;
        System.out.println("创建线程:"   threadName );
    }

    @Override
    public void run() {
        System.out.println("运行线程:"   threadName);
        try {
            for(int i = 3; i > 0; i--) {
                System.out.println("Thread: "   threadName   ", "   i);
                // 让线程睡眠一会
                Thread.sleep(50);
            }
        } catch (InterruptedException  e) {
            System.out.println("Thread "    threadName   " interrupted.");
        }
        System.out.println("Thread "    threadName   " exiting.");
    }

    public void start() {
        System.out.println("开始线程:"   threadName );
        if (t == null) {
            t = new Thread (this, threadName);
            t.start ();
        }
    }
}

0 人点赞