Java 多线程(一)—— 线程的创建与属性

在现代的应用程序中,为了提高性能和响应速度,多线程编程是一种常见的技术。Java 提供了丰富的支持来创建和管理线程。本文将简要介绍在 Java 中如何创建线程以及线程的基本属性。

一、线程的创建

在 Java 中,有两种主要方式可以创建线程:继承 Thread 类和实现 Runnable 接口。

1. 继承 Thread

通过继承 Thread 类,我们可以重写 run() 方法来定义线程执行的任务。创建线程的步骤如下:

class MyThread extends Thread {
    @Override
    public void run() {
        for (int i = 0; i < 5; i++) {
            System.out.println(Thread.currentThread().getName() + " 计数: " + i);
        }
    }

    public static void main(String[] args) {
        MyThread thread1 = new MyThread();
        MyThread thread2 = new MyThread();

        thread1.start(); // 启动线程1
        thread2.start(); // 启动线程2
    }
}

在这个示例中,我们创建了一个名为 MyThread 的线程,重写了 run() 方法并在其中打印线程名和计数。通过调用 start() 方法来启动线程,JVM 会自动调用 run() 方法。

2. 实现 Runnable 接口

另一种创建线程的方式是实现 Runnable 接口。这种方式的优点在于可以让我们的类继承自其他类。以下是实现 Runnable 接口的示例:

class MyRunnable implements Runnable {
    @Override
    public void run() {
        for (int i = 0; i < 5; i++) {
            System.out.println(Thread.currentThread().getName() + " 计数: " + i);
        }
    }

    public static void main(String[] args) {
        MyRunnable myRunnable = new MyRunnable();
        Thread thread1 = new Thread(myRunnable);
        Thread thread2 = new Thread(myRunnable);

        thread1.start(); // 启动线程1
        thread2.start(); // 启动线程2
    }
}

在这个示例中,我们定义了一个实现了 Runnable 接口的类 MyRunnable,并在 run() 方法中写入了线程执行的代码。然后在 main 方法中,我们创建了两个线程,并分别启动它们。

二、线程的属性

1. 线程的名称

每个线程都有一个名称,可以通过 Thread 类的 getName() 方法获取,并可以通过构造函数设置线程名称。例:

Thread thread = new Thread(myRunnable, "MyThread");
System.out.println(thread.getName()); // 输出:MyThread

2. 线程的优先级

Java 中的线程可以设置优先级。线程的优先级取值范围从 110,可以通过 setPriority(int priority) 方法设置,默认优先级为 5

thread1.setPriority(Thread.MAX_PRIORITY); // 设置为最大优先级
thread2.setPriority(Thread.MIN_PRIORITY); // 设置为最小优先级

3. 线程的状态

线程在执行过程中会经历不同的状态,包括新建(New)、就绪(Runnable)、运行(Running)、阻塞(Blocked)、等待(Waiting)、超时等待(Timed Waiting)和死亡(Terminated)。可以通过 Thread 类的方法来获取线程的状态。

总结

多线程编程是 Java 中处理并发任务的重要手段。通过继承 Thread 类或实现 Runnable 接口,我们可以轻松创建线程并设置线程的基本属性。了解线程的创建与属性是掌握 Java 多线程编程的基础。在后续的文章中,我们将继续探讨线程的同步、通信等更深入的内容。

点赞(0) 打赏

微信小程序

微信扫一扫体验

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部