• 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 "线程已启动...";
    }
  • 相关阅读:
    Array,prototype.toString.call()
    js 中的delete运算符
    c#连接sql数据库以及操作数据库
    ArrayList集合
    查找出数据表中的重复值
    C#中的List<string>泛型类示例
    C#中的List<string>泛型类示例
    C#中Convert.ToInt32、int.TryParse、(int)和int.Parse四者的区别
    C#获取文件夹下的所有文件的方法
    从本地文件夹中读取文本文档,并将所有的文档内容合并到一个文本中
  • 原文地址:https://www.cnblogs.com/codecat/p/12092607.html
Copyright © 2020-2023  润新知