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 "线程已启动...";
}
Java8使用实现Runnable接口方式创建新线程的方法的更多相关文章
- 03_线程的创建和启动_实现Runnable接口方式
[线程的创建和启动的步骤(实现Runnable接口方式)] 1.定义Runnable接口的实现类,并重写其中的run方法.run()方法的方法体是线程执行体. class SonThread imp ...
- java多线程--实现Runnable接口方式
因为java类只能继承一个类可以实现多个接口的特性,所以一般情况下不推荐使用继承Thread类实现多线程,下面是实现Runnable接口方式的简单多线程代码 package text; /** * 多 ...
- 廖雪峰Java11多线程编程-1线程的概念-2创建新线程
Java语言内置多线程支持: 一个Java程序实际上是一个JVM进程 JVM用一个主线程来执行main()方法 在main()方法中又可以启动多个线程 1.创建新线程 1.1 方法一:使用Thread ...
- Java基础 继承的方式创建多线程 / 线程模拟模拟火车站开启三个窗口售票
继承的方式创建多线程 笔记: /**继承的方式创建多线程 * 线程的创建方法: * 1.创建一个继承于Thread 的子类 * 2.重写Thread类的run()方法 ,方法内实现此子线程 要完成的功 ...
- Java通过实现Runnable接口来创建线程
创建一个线程,最简单的方法是创建一个实现Runnable接口的类. 为了实现Runnable,一个类只需要执行一个方法调用run(),声明如下: public void run() 你可以重写该方法, ...
- Thread 和 Runnable创建新线程的区别,Runnable可以共享线程类的实例属性
Thread实现多线程: public class Thread2 extends Thread{ public int i; public void run(){ for(; i < 100 ...
- 实现Runnable接口方式
package com.roocon.thread.t2; public class Demo2 implements Runnable { @Override public void run() { ...
- 多线程编程之Windows环境下创建新线程
转自: http://www.cnblogs.com/lgxqf/archive/2009/02/10/1387480.html 在 Win32 API 中,创建线程的基本函数是 CreateThre ...
- Spark无法创建新线程
Spark提交程序报错,无法创建新的线程 原因是因为这台公用机器上跑的进程太多了,需要修改Linux参数,允许用户最大进程数 查看允许用户最大进程数配置 ulimit -a 修改允许用户最大进程数配置 ...
随机推荐
- This MySqlConnection is already in use
项目中类似于以下的代码,实际的代码要更复杂,DbContext是依赖注入的: 报错如下: This MySqlConnection is already in use. See https://fl. ...
- 【leetcode】564. Find the Closest Palindrome
题目如下: 解题思路:既然是要求回文字符串,那么最终的输出结果就是对称的.要变成对称字符串,只要把处于对称位置上对应的两个字符中较大的那个变成较小的那个即可,假设n=1234,1和4对称所以把4变成1 ...
- JS的数据类型及分类
JS分两种数据类型: 基本数据类型: Number.String.Boolean.Null. Undefined.Symbol(ES6) 这些类型可以直接操作保存在变量中的实际值. 引用数据类型: O ...
- 2017 ACM-ICPC乌鲁木齐网络赛 B. Out-out-control cars(计算几何 直线相交)
题目描述 Two out-of-control cars crashed within about a half-hour Wednesday afternoon on Deer Park Avenu ...
- C#编写ActiveX控件
用C#编写ActiveX控件 http://www.cnblogs.com/homer/archive/2005/01/04/86473.html http://www.cnblogs.com/hom ...
- JavaScript实现Word、Excel、PPT在线预览
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/qq_27626333/article/d ...
- SQL 关键字的使用顺序
1.查询中用到的关键词主要包含六个,并且他们的顺序依次为 select --> from --> where --> group by --> having --> or ...
- 【原】通过npm script运行webpack的原理
原理:在项目中,局部安装依赖,依赖如果有创建命令的情况下会在node_modules/.bin目录创建软链接,pack.json默认读取到.bin下的命令. 如有理解不对,请各位大神纠正
- 关于CSS中的单位px、em、rem
首先,px.em.rem都是相对单位: px(pixel像素)是相对于显示器屏幕分辨率的,IE无法调整那些使用px作为单位的字体大小: em是相对于当前对象内文本字体的尺寸,如当前对行内文本的字体尺寸 ...
- 使用SSH方式实现Git远程连接GitHub/gitlab
参照: https://blog.csdn.net/wuli_smbug/article/details/81480162