Java中多线程的创建——通过继承Thread类

Java中多线程的创建——通过继承Thread类

在Java中,多线程编程是一种重要的技术,它允许程序同时执行多个任务。Java提供了两种主要的方式来创建线程:继承Thread类和实现Runnable接口。本文将重点介绍通过继承Thread类来创建多线程的方法,并给出相应的示例代码和注释,以帮助初学者更好地理解和掌握。

继承Thread类创建线程

当我们通过继承Thread类来创建线程时,需要重写Thread类中的run()方法。run()方法包含了线程需要执行的代码。当我们调用线程的start()方法时,Java虚拟机会自动调用run()方法来执行线程的代码。

下面是一个简单的示例代码,演示了如何通过继承Thread类来创建并启动一个线程:

// 自定义线程类,继承自Thread类
public class MyThread extends Thread {

    // 重写Thread类的run()方法,定义线程执行的代码
    @Override
    public void run() {
        // 线程执行的代码块
        for (int i = 0; i < 5; i++) {
            // 打印当前线程的名称和执行的次数
            System.out.println("线程 " + Thread.currentThread().getName() + " 执行: " + i);

            // 为了模拟线程执行的过程,可以添加一些延迟
            try {
                Thread.sleep(100); // 线程休眠100毫秒
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }

    // 主程序入口
    public static void main(String[] args) {
        // 创建MyThread对象,即创建了一个线程
        MyThread myThread = new MyThread();

        // 设置线程的名称(可选)
        myThread.setName("自定义线程");

        // 启动线程,调用start()方法而不是run()方法
        myThread.start();

        // 主线程继续执行其他任务或等待线程结束
        for (int i = 0; i < 5; i++) {
            System.out.println("主线程执行: " + i);

            try {
                Thread.sleep(100); // 主线程也休眠100毫秒,以便观察线程交替执行的效果
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}

代码注释说明:

  1. 我们定义了一个名为MyThread的类,它继承自Thread类。
  2. MyThread类中,我们重写了run()方法,定义了线程需要执行的代码。在这个例子中,我们使用了一个for循环来模拟线程的执行过程,并打印出当前线程的名称和执行的次数。
  3. main()方法中,我们创建了一个MyThread对象,即创建了一个线程。然后,我们调用setName()方法来设置线程的名称(这一步是可选的)。
  4. 要启动线程,我们需要调用start()方法而不是直接调用run()方法。start()方法会启动一个新的线程来执行run()方法中的代码,而直接调用run()方法则只是在当前线程中执行run()方法中的代码,并不会创建新的线程。
  5. main()方法中,我们还添加了一个for循环来模拟主线程的执行过程。通过让主线程和自定义线程都休眠100毫秒,我们可以观察到线程交替执行的效果。

通过运行上述代码,你将看到主线程和自定义线程交替执行的结果,从而理解多线程编程的基本概念和工作原理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值