java多线程入门知识及示例程序


Java多线程是Java并发编程的基础,它允许你的程序同时执行多个任务。这里我会简要介绍Java多线程的基础知识,并给出一个简单的示例程序。

### Java多线程基础知识

1. **线程与进程**:

- 进程是系统进行资源分配和调度的一个独立单元,它是应用程序运行的载体。

- 线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的独立运行的单位。一个进程可以拥有多个线程,线程间共享进程的资源。

2. **Java中创建线程的方式**:

- 继承`Thread`类:创建一个继承自`Thread`类的子类,并重写其`run()`方法。然后创建该子类的实例,并调用其`start()`方法来启动线程。

- 实现`Runnable`接口:创建一个实现了`Runnable`接口的类,并实现其`run()`方法。然后创建`Thread`类的实例,将实现了`Runnable`接口的类的实例作为构造参数传递给`Thread`的构造函数。最后调用`Thread`实例的`start()`方法来启动线程。

3. **线程的生命周期**:

- 新建(New):线程被创建但尚未启动。

- 就绪(Runnable):线程已经准备好执行,等待CPU的调度。

- 运行(Running):线程正在执行。

- 阻塞(Blocked):线程因为某些原因(如等待IO操作)暂停执行,进入阻塞状态。

- 死亡(Dead):线程执行完毕或因为异常而终止。

### 示例程序:使用`Runnable`接口创建线程


// 实现Runnable接口
public class MyRunnable implements Runnable {
    @Override
    public void run() {
        // 在这里编写线程要执行的代码
        System.out.println("线程运行中: " + Thread.currentThread().getName());
    }

    public static void main(String[] args) {
        // 创建实现了Runnable接口的类的实例
        MyRunnable myRunnable = new MyRunnable();

        // 创建Thread类的实例,将Runnable实例作为参数
        Thread thread = new Thread(myRunnable);

        // 设置线程的名称(可选)
        thread.setName("示例线程");

        // 启动线程
        thread.start();
    }
}

这个示例程序展示了如何通过实现`Runnable`接口来创建和启动一个线程。在`run()`方法中编写你想要线程执行的代码。注意,我们通过调用`Thread`类的`start()`方法来启动线程,而不是直接调用`run()`方法。直接调用`run()`方法会同步执行`run()`方法中的代码,而不会创建一个新的线程。