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()`方法中的代码,而不会创建一个新的线程。