Java8使用实现Runnable接口方式创建新线程的方法

环境介绍

JDK版本:1.8

开发架构:spring boot 2.x

日志:slf4j

实现步骤

Runnable接口中只有一个run()方法,它是非Thread类子类的类提供的一种激活方式。一个类实现Runnable接口后,并不代表该类是一个“线程”类,不能直接运行,必须通过Thread实例才能创建并运行线程。

通过Runnable接口创建线程的步骤如下:

1、定义实现Runnable接口的类,并实现该类中的run()方法。

2、建立一个Thread对象,并将实现的Runnable接口的类的对象作为参数传入Thread类的构造方法。

3、通过Thread类中的start()方法启动线程,并运行。

Runnable实现类代码

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
 * Runnable实现类
 */
public class ImportAddWeatherTaskAction implements Runnable {
    //日志
    private final static Logger logger = LoggerFactory.getLogger(ImportAddWeatherTaskAction.class);
    //定义线程
    private Thread t;
    private String threadName;
    //构造函数
    public ImportAddWeatherTaskAction(String threadName) {
        this.threadName = threadName;
    }
    
    public void start() {
        if (t == null) {
            t = new Thread (this, threadName);
            t.start();
        }
    }

    public void run(){
        logger.info("线程开始运行:" + threadName);
        //这里写在新线程中要实现的逻辑
        logger.info("线程执行结束!");
    }
}

调用线程实现类

/**
 * 调用线程实现类(在其他服务实现类中编写此方法)
 */
public String importAddWeatherData(){
    //实现化
    ImportAddWeatherTaskAction R1 = new ImportAddWeatherTaskAction("线程名称");
    R1.start();
    return "线程已启动...";
}
原文地址:https://www.cnblogs.com/codecat/p/12092607.html