您现在的位置是:首页 > 编程 > 

【连载 02】 多线程实现

2025-07-22 23:15:02
【连载 02】 多线程实现 Java 多线程实现Java 多线程有多种实现方式,在测试工作中最常用的有两种:继承 java.lang.Thread 类实现 java.lang.Runnable 接口1. 继承 Thread 类通过继承 java.lang.Thread 实现 Java 多线程的步骤如下:定义一个继承自 Thread 的子类,并重写 run() 方法。在 run() 方法中编写多线程

【连载 02】 多线程实现

Java 多线程实现

Java 多线程有多种实现方式,在测试工作中最常用的有两种:

  1. 继承 java.lang.Thread
  2. 实现 java.lang.Runnable 接口
1. 继承 Thread

通过继承 java.lang.Thread 实现 Java 多线程的步骤如下:

  1. 定义一个继承自 Thread 的子类,并重写 run() 方法。
  2. run() 方法中编写多线程执行的代码逻辑。
  3. 创建 Thread 子类的实例,调用 start() 方法启动新线程。

示例代码

代码语言:javascript代码运行次数:0运行复制
package org.funtester.performance.section2;

/**
 * 继承 {@link Thread} 实现 Java 多线程 
 */
public class FunThreadFirst extends Thread {

    /**
     * 主线程
     * @param args
     */
    public static void main(String[] args) {
        new FunThreadFirst().start(); // 启动线程
        println("Hello FunTester!    " + ().getame()); // 打印线程名称
    }

    /**
     * 重写 {@link Thread#run()} 方法
     */
    @Override
    public void run() {
        try {
            Thread.sleep(100); // 睡眠 100 毫秒
        } catch (InterruptedException e) {
            e.printStackTrace(); // 打印异常堆栈
        }
        println("Hello FunTester!    " + ().getame()); // 打印线程名称
    }
}

控制台输出

代码语言:javascript代码运行次数:0运行复制
Hello FunTester!    main
Hello FunTester!    Thread-0

我们在 run() 方法中增加了 100ms 的休眠,这样 main 线程的输出会优先于我们创建的多线程 Thread-0 输出,表明 main 线程与 Thread-0 是并发执行的,非阻塞。

2. 实现 Runnable 接口

通过实现 java.lang.Runnable 接口实现 Java 多线程的步骤如下:

  1. 定义一个类,并实现 Runnable 接口的 run() 方法。
  2. run() 方法中编写多线程执行逻辑。
  3. 创建 Runnable 实现类对象,并传递给 Thread 构造方法创建线程对象,然后启动线程。

示例代码

代码语言:javascript代码运行次数:0运行复制
package org.funtester.performance.section2;

/**
 * 实现 {@link Runnable} 接口实现 Java 多线程
 */
public class FunThreadSecond implements Runnable {

    /**
     * 主线程
     * @param args
     */
    public static void main(String[] args) {
        FunThreadSecond second = new FunThreadSecond(); // 创建 Runnable 实例
        new Thread(second).start(); // 启动线程
        println("Hello FunTester!    " + ().getame()); // 打印线程名称
    }

    /**
     * 重写 {@link Runnable#run()} 方法
     */
    @Override
    public void run() {
        try {
            Thread.sleep(100); // 睡眠 100 毫秒
        } catch (InterruptedException e) {
            e.printStackTrace(); // 打印异常堆栈
        }
        println("Hello FunTester!    " + ().getame()); // 打印线程名称
    }
}

控制台输出

代码语言:javascript代码运行次数:0运行复制
Hello FunTester!    main
Hello FunTester!    Thread-0

同样地,输出顺序表明两个线程的执行代码相互不干扰,是非阻塞的。

. 使用 Lambda 表达式实现多线程

在 Java 8 中,可以使用 Lambda 表达式实现多线程。这种方式是实现 Runnable 接口的简化变种,语法更加简洁,在后续线程池中使用时也非常常见。

示例代码

代码语言:javascript代码运行次数:0运行复制
package org.funtester.performance.section2;

/**
 * 使用 Lambda 表达式实现 Java 多线程
 */
public class FunThreadThird {

    /**
     * 主线程
     * @param args
     */
    public static void main(String[] args) {
        new Thread(() -> println("Hello FunTester!    " + ().getame())).start(); // 创建并启动线程
        println("Hello FunTester!    " + ().getame()); // 打印线程名称
    }
}

控制台输出

代码语言:javascript代码运行次数:0运行复制
Hello FunTester!    main
Hello FunTester!    Thread-0

总结
  • 继承 Thread:适合需要扩展 Thread 类功能的场景,但 Java 不支持多继承,限制了类的设计。
  • 实现 Runnable 接口:更灵活,适合多个线程共享同一任务逻辑的场景。
  • 使用 Lambda 表达式:语法简洁,推荐在支持 Java 8 的项目中使用。

每种方法都有其适用场景,根据实际需求选择合适的实现方式。

书的名字:从 Java 开始做性能测试

如果本书内容对你有所帮助,希望各位多多赞赏,让我可以贴补家用。赞赏两位数可以提前阅读未公开章节。我也会尝试制作本书的视频教程,包括必要的答疑。

本文参与 腾讯云自媒体同步曝光计划,分享自。原始发表:2024-11-27,如有侵权请联系 cloudcommunity@tencent 删除继承接口线程thread多线程

#感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格

本文地址:http://www.dnpztj.cn/biancheng/1132737.html

相关标签:无
上传时间: 2025-07-18 21:12:44
留言与评论(共有 13 条评论)
本站网友 横琴银行
17分钟前 发表
并传递给 Thread 构造方法创建线程对象
本站网友 梨涡
20分钟前 发表
并传递给 Thread 构造方法创建线程对象
本站网友 徐州财经网
13分钟前 发表
书的名字:从 Java 开始做性能测试
本站网友 刘思齐简介
1分钟前 发表
非阻塞
本站网友 上海能源
5分钟前 发表
希望各位多多赞赏
本站网友 长沙找房
27分钟前 发表
非阻塞
本站网友 碱性的食物有哪些
30分钟前 发表
根据实际需求选择合适的实现方式
本站网友 顺义12团
27分钟前 发表
如果本书内容对你有所帮助
本站网友 贝赛特氏症
11分钟前 发表
这种方式是实现 Runnable 接口的简化变种
本站网友 艾肯声卡调试
30分钟前 发表
是非阻塞的
本站网友 春分桃花开
18分钟前 发表
在 run() 方法中编写多线程执行的代码逻辑
本站网友 晨阳水漆
27分钟前 发表
分享自