线程的四种创建方式

简介: 线程的四种创建方式

四种创建线程的方式:

  • 继承 Thread 类
  • 实现 Runnable 接口
  • 通过 ExecutorService 和 Callable<Class> 实现有返回值的线程
  • 基于线程池的execute(),创建临时线程

1 继承 Thread 类

Thread 类实现了 Runnable 接口并定义了操作线程的一些方法,我们可以通过创建类时继承 Thread类来创建一个线程。

具体实现:

(1)创建一个继承Thread的类ThreadDemo

(2)重新run()方法

调用步骤:

(1)创建ThreadDemo 类的对象t1

(2)执行t1.start() 方法来启动线程

//创建线程类
public class ThreadDemo extends Thread {
    //重写run()方法
    @Override
    public void run() {
        for(int i = 0;i<1000;i++) {
            System.out.println("Thread::"+i);
        }
    }
}
/***********************************************************************/
//调用线程
//创建线程对象
ThreadDemo t1 = new ThreadDemo();
//启动线程
t1.start();

run()方法中是线程的具体逻辑操作,

start()是一个native本地方法,通过操作系统启动一个线程。

2 实现 Runnable 接口

通过实现Runnable 接口来创建线程类 RThread,但是使用的时候,仍需要创建Thread 对象,把RThread的对象当成参数传入。

具体操作:

(1)实现Runnable 接口创建线程类 RThread

(2)重写run()方法

调用步骤:

(1)创建RThread 类的对象 rThread

(2)创建Thread类对象,并把rThread当成参数传入,相当于对rThread进行了封装。

(3)通过start()方法启动线程

//实现Runnable 接口创建线程类 RThread
public class RThread implements Runnable {
    @Override
    //重写run()方法
    public void run() {
        for(int i = 0;i<1000;i++) {
            System.out.println("Thread::"+i);
        }
    }
}
/***********************************************************************/
//调用线程
//创建RThread 类的对象 rThread
RThread rThread = new RThread();
//创建Thread类对象,并把rThread当成参数传入,相当于对rThread进行了封装。
Thread t2 = new Thread(rThread);
//通过start()方法启动线程
t2.start();



相关文章
|
SpringCloudAlibaba 负载均衡 Java
【一】SpringCloud Alibaba之Nacos整合篇(作为注册中心)
【一】SpringCloud Alibaba之Nacos整合篇(作为注册中心)
965 1
【一】SpringCloud Alibaba之Nacos整合篇(作为注册中心)
|
运维 Java Nacos
nacos常见问题之读取不到配置文件如何解决
Nacos是阿里云开源的服务发现和配置管理平台,用于构建动态微服务应用架构;本汇总针对Nacos在实际应用中用户常遇到的问题进行了归纳和解答,旨在帮助开发者和运维人员高效解决使用Nacos时的各类疑难杂症。
7344 2
|
负载均衡 Java 网络架构
在SpringCloud2023中快速集成SpringCloudGateway网关
本文主要简单介绍SpringCloud2023实战中SpringCoudGateway的搭建。后续的文章将会介绍在微服务中使用熔断Sentinel、鉴权OAuth2、SSO等技术。
504 2
在SpringCloud2023中快速集成SpringCloudGateway网关
载波相移CPS-SPWM调制方法的simulink建模与仿真
本课题研究载波相移CPS-SPWM调制方法的Simulink建模与仿真。CPS-SPWM通过在多个功率单元中引入载波相移,使开关动作错开,输出多电平PWM波形,接近理想正弦波。系统采用单极倍频调制波反相法,生成互补脉冲序列控制开关管通断。双极性CPS-PWM的电压电平数为n+1,基波分量是单个双极性PWM的N倍。仿真结果验证了该方法的有效性,核心程序基于MATLAB2022a实现。
|
10月前
|
人工智能
云工开物合作动态丨中央美术学院与阿里云签约,推动人工智能和艺术与设计学科融合发展
2024年12月8日,中央美术学院与阿里云在厦门签署合作协议,双方将结合艺术与技术优势,在人工智能与艺术交叉学科的课程共建、学生实践等方面展开合作。阿里云通过“云工开物”计划提供算力资源和PAI ArtLab平台,助力师生高效创作,推动艺术与设计类人才培养新模式的探索。
|
数据可视化 开发工具 计算机视觉
LabVIEW视觉采集软件(VAS)、视觉生成器(VB)和视觉开发模块(VDM)之间有什么不同
LabVIEW视觉采集软件(VAS)、视觉生成器(VB)和视觉开发模块(VDM)之间有什么不同
278 1
|
安全
搞懂HashTable, HashMap, ConcurrentHashMap 的区别,看着一篇就足够了!!!
搞懂HashTable, HashMap, ConcurrentHashMap 的区别,看着一篇就足够了!!!
405 0
|
数据可视化 Java 数据安全/隐私保护
【Spring Cloud Alibaba Sentinel 实现熔断与限流】 —— 每天一点小知识(上)
【Spring Cloud Alibaba Sentinel 实现熔断与限流】 —— 每天一点小知识
519 0
|
前端开发 Java Apache
springcloud feign
springcloud feign
331 0
springcloud feign