线程创建的三大方式

简介: 线程创建的三大方式

继承Thread类 重写run方法

  1. Thread类也是Runnable接口的实现类
/**
 * @author 舒一笑
 * @date 2023/5/24
 */
public class test1 {
    public static void main(String[] args) {
        Thread01 thread01 = new Thread01();
        thread01.start();
        for (int i = 0; i < 100; i++) {
            System.out.println("mian" + i);
        }
    }
}
class Thread01 extends Thread{
    @Override
    public void run() {
        for (int i = 0; i < 100; i++) {
            System.out.println("Thread01" + i);
        }
    }
}

实现Runnable接口 重写run方法

/**
 * @author 舒一笑
 * @date 2023/5/24
 */
public class test1 {
    public static void main(String[] args) {
//        Thread01 thread01 = new Thread01();
//        thread01.start();
        Thread02 thread02 = new Thread02();
        Thread t2 = new Thread(thread02);
        t2.start();

        for (int i = 0; i < 100; i++) {
            System.out.println("mian" + i);
        }
    }
}
class Thread01 extends Thread{
    @Override
    public void run() {
        for (int i = 0; i < 100; i++) {
            System.out.println("Thread01" + i);
        }
    }
}
class Thread02 implements Runnable{

    @Override
    public void run() {
        for (int i = 0; i < 100; i++) {
            System.out.println("Thread02" + i);
        }
    }
}

匿名内部类方式:

/**
 * @author 舒一笑
 * @date 2023/5/24
 */
public class test1 {
    public static void main(String[] args) {
//        Thread01 thread01 = new Thread01();
//        thread01.start();
//        Thread02 thread02 = new Thread02();
//        Thread t2 = new Thread(thread02);
//        t2.start();
//
//        for (int i = 0; i < 100; i++) {
//            System.out.println("mian" + i);
//        }
        Thread t3 = new Thread(new Runnable() {
            @Override
            public void run() {
                for (int i = 0; i < 10; i++) {
                    System.out.println("Thread03" + i);
                }
            }
        });
        t3.start();
    }
}
/**

lambda表达式的方式创建

/**
 * @author 舒一笑
 * @date 2023/5/24
 */
public class test1 {
    public static void main(String[] args) {
//        Thread01 thread01 = new Thread01();
//        thread01.start();
//        Thread02 thread02 = new Thread02();
//        Thread t2 = new Thread(thread02);
//        t2.start();
//
//        for (int i = 0; i < 100; i++) {
//            System.out.println("mian" + i);
//        }
//        Thread t3 = new Thread(new Runnable() {
//            @Override
//            public void run() {
//                for (int i = 0; i < 10; i++) {
//                    System.out.println("Thread03" + i);
//                }
//            }
//        });
        Thread t4 = new Thread(() -> {
            for (int i = 0; i < 100; i++) {
                System.out.println("lambda:" + i);
            }
        });
        t4.start();
    }
}

总结

启动线程是调用start方法,这样会创建一个新的线程,并执行线程的任务。

如果直接调用run方法,这样会让当前线程执行run方法中的业务逻辑。

相关文章
|
监控 Windows
如何追踪Windows 进程自动异常退出
教你如何追踪Windows 进程自动异常退出
如何追踪Windows 进程自动异常退出
|
Linux 数据安全/隐私保护 Windows
更换(Pypi)pip源到国内镜像
pip国内的一些镜像 阿里云 http://mirrors.aliyun.com/pypi/simple/ 中国科技大学 https://pypi.mirrors.
249432 2
|
存储 运维 安全
探秘阿里云云专线:企业上云网络连接的最优解
阿里云云专线(CCN)是专用网络连接服务,通过物理专线将企业本地网络与云端资源无缝连接。它具备高速稳定、安全可靠、灵活扩展和便捷管理等优势,适用于混合云架构、分支机构互联及数据灾备迁移等场景。用户可登录阿里云官网选择合适套餐并快速开通服务,关注公众号还能获取更多资讯。
1397 9
|
移动开发 JavaScript 定位技术
百度地图开发:地图调起API(Web端)使用终点经纬度直接调用百度地图导航信息的解决方案
百度地图开发:地图调起API(Web端)使用终点经纬度直接调用百度地图导航信息的解决方案
1247 0
|
前端开发
create-react-app 如何使用 less/sass 和 react-css-modules?
本文详细介绍了在 create-react-app 项目中如何使用 less/sass 和 react-css-modules 来管理和应用样式。首先,通过安装相应依赖并配置 webpack 支持 less/sass;接着,介绍如何使用这些预处理器编写样式;最后,讲解了如何配置和使用 react-css-modules 实现样式的模块化管理,以及如何结合使用 less/sass 和 react-css-modules 提高开发效率和代码质量。
548 3
|
Ubuntu Shell 开发工具
Ubuntu下安装配置和调优 Oh-my-fish
Oh-my-fish 是一个强大的工具,可以大大增强 Fish Shell 的功能和美观度。通过安装和配置 Oh-my-fish,可以极大地提升命令行的使用体验。同时,通过适当的调优,可以优化 Oh-my-fish 的性能,使其在保持丰富功能的同时,仍然能够快速启动并高效运行。希望本文提供的详细步骤和示例代码能帮助您在 Ubuntu 系统中顺利安装、配置和调优 Oh-my-fish。
1671 7
|
网络协议 前端开发 API
HTTP 和 TCP 协议的应用场景有哪些不同
【10月更文挑战第25天】HTTP(超文本传输协议)和 TCP(传输控制协议)处于网络协议栈的不同层次,各自具有独特的功能和特点,因此它们的应用场景也存在明显的差异。
|
Java Nacos Sentinel
Spring Cloud Alibaba:一站式微服务解决方案
Spring Cloud Alibaba(简称SCA) 是一个基于 Spring Cloud 构建的开源微服务框架,专为解决分布式系统中的服务治理、配置管理、服务发现、消息总线等问题而设计。
3590 13
Spring Cloud Alibaba:一站式微服务解决方案
|
数据可视化 数据挖掘 Python
绘制带误差分析的柱状图
【9月更文挑战第1天】在数据分析与科研中,带误差分析的柱状图能直观展示数据分布与不确定性。本文介绍使用Python的Matplotlib库和Excel绘制此类图表的方法,包括安装库、准备数据、绘制图表及添加误差线等步骤,帮助用户根据需求进行调整与定制。
688 5
|
JSON 前端开发 测试技术
接口设计规范
该文档介绍了需求分析和接口设计的步骤。首先,通过原型文档和PRD理解业务需求,如有必要需与产品经理深入沟通。其次,设计接口时需考虑四要素:请求路径(按模块命名,英文)、请求方式(GET, POST, PUT, DELETE,遵循RESTful风格)、请求参数(路径参数和请求体参数)和响应参数(统一格式,通常包含状态码、消息和数据)。最后,提到了接口测试,推荐使用Postman、Apifox、Swagger或Knife4j等工具进行测试。
944 5

热门文章

最新文章