zoukankan      html  css  js  c++  java
  • 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 "线程已启动...";
    }
  • 相关阅读:
    js实现继承的5种方式
    JavaScript文件操作(1)-基础
    12 个免费在线的 Web 网站性能测试工具
    server r2 系统更新文件清理
    在C#中,Json的序列化和反序列化的几种方式总结
    ES6,新增数据结构Set的用法
    ES6中有关数组的一些新操作
    vue中mode hash 和 history的区别
    POST和GET的区别
    前端的细节
  • 原文地址:https://www.cnblogs.com/codecat/p/12092607.html
Copyright © 2011-2022 走看看