1. 多线程基础概念
多线程允许程序同时执行多个任务,提升效率。在Java中,实现多线程有两种主要方式:
- 继承Thread类:创建一个类继承
Thread类,并重写run()方法 - 实现Runnable接口:创建一个类实现
Runnable接口,并实现run()方法
2. 快速上手示例
下面是一个简单示例,展示两种实现方式:
// 方式1:继承Thread类
class MyThread extends Thread {
@Override
public void run() {
for (int i = 0; i < 5; i++) {
System.out.println("MyThread: " + i);
try {
Thread.sleep(100); // 暂停100毫秒
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
// 方式2:实现Runnable接口
class MyRunnable implements Runnable {
@Override
public void run() {
for (int i = 0; i < 5; i++) {
System.out.println("MyRunnable: " + i);
try {
Thread.sleep(150); // 暂停150毫秒
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
public class Main {
public static void main(String[] args) {
// 创建并启动继承Thread的线程
MyThread thread1 = new MyThread();
thread1.start(); // 注意:调用start()而不是run()
// 创建并启动实现Runnable的线程
Thread thread2 = new Thread(new MyRunnable());
thread2.start();
// 主线程继续执行
for (int i = 0; i < 5; i++) {
System.out.println("Main: " + i);
try {
Thread.sleep(200); // 暂停200毫秒
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
3. 代码解释
关键知识点:
- Thread类:Java提供的线程基类,通过继承它可以创建自定义线程
- Runnable接口:包含一个抽象方法
run(),用于定义线程执行的任务 - start()方法:启动线程,JVM会调用线程的
run()方法 - sleep()方法:让当前线程暂停执行指定时间(毫秒)
- 主线程:每个Java程序都有一个主线程,即执行
main()方法的线程
运行流程:
- 当你运行程序时,会同时有三个线程在执行:
thread1、thread2和主线程 - 每个线程按照自己的逻辑独立执行,输出顺序可能因调度而不同
sleep()方法用于模拟耗时操作,使输出更易观察
4. 线程同步(进阶)
当多个线程访问共享资源时,可能会出现数据不一致问题。Java提供synchronized关键字解决这个问题:
class Counter {
private int count = 0;
// 同步方法,确保同一时间只有一个线程能访问
public synchronized void increment() {
count++;
}
public int getCount() {
return count;
}
}
以上是Java多线程的快速入门。建议进一步学习线程生命周期、线程池、并发工具类等高级主题。
427

被折叠的 条评论
为什么被折叠?



