当前位置:首页 > Java > 正文

Java多线程编程入门(Thread类使用教程与并发编程基础)

在现代软件开发中,Java多线程编程是一项非常重要的技能。无论是处理大量数据、提升程序响应速度,还是实现后台任务,多线程都能发挥巨大作用。本教程将带你从零开始,深入浅出地学习 Java 中的 Thread 类,掌握 Java线程基础,为你的 并发编程入门打下坚实基础。

什么是线程?

线程是操作系统能够进行运算调度的最小单位。一个进程可以包含多个线程,它们共享进程的内存空间,但各自拥有独立的执行路径。在 Java 中,我们可以通过 java.lang.Thread 类来创建和管理线程。

Java多线程编程入门(Thread类使用教程与并发编程基础) Java多线程编程 Thread类使用教程 Java线程基础 并发编程入门 第1张

创建线程的两种方式

在 Java 中,创建线程主要有两种方式:

1. 继承 Thread 类

你可以创建一个类继承 Thread,并重写其 run() 方法。然后通过调用 start() 方法启动线程。

public class MyThread extends Thread {    @Override    public void run() {        for (int i = 0; i < 5; i++) {            System.out.println(Thread.currentThread().getName() + " 正在运行: " + i);            try {                Thread.sleep(1000); // 暂停1秒            } catch (InterruptedException e) {                e.printStackTrace();            }        }    }    public static void main(String[] args) {        MyThread thread1 = new MyThread();        MyThread thread2 = new MyThread();                thread1.start(); // 启动线程1        thread2.start(); // 启动线程2    }}

2. 实现 Runnable 接口(推荐方式)

更灵活的方式是实现 Runnable 接口。这种方式避免了 Java 单继承的限制,并且更符合面向对象的设计原则。

public class MyRunnable implements Runnable {    @Override    public void run() {        for (int i = 0; i < 5; i++) {            System.out.println(Thread.currentThread().getName() + " 正在运行: " + i);            try {                Thread.sleep(1000);            } catch (InterruptedException e) {                e.printStackTrace();            }        }    }    public static void main(String[] args) {        Thread thread1 = new Thread(new MyRunnable(), "线程A");        Thread thread2 = new Thread(new MyRunnable(), "线程B");                thread1.start();        thread2.start();    }}

常用 Thread 方法介绍

  • start():启动线程,JVM 会调用该线程的 run() 方法。
  • run():线程执行体,包含线程要执行的代码。
  • sleep(long millis):使当前线程暂停指定毫秒数。
  • join():等待该线程终止后再继续执行后续代码。
  • isAlive():判断线程是否仍在运行。

线程安全与同步

当多个线程访问共享资源时,可能会出现数据不一致的问题。这时我们需要使用 synchronized 关键字来保证线程安全。

public class Counter {    private int count = 0;    public synchronized void increment() {        count++;    }    public int getCount() {        return count;    }}public class SafeThreadExample {    public static void main(String[] args) throws InterruptedException {        Counter counter = new Counter();                Thread t1 = new Thread(() -> {            for (int i = 0; i < 1000; i++) {                counter.increment();            }        });                Thread t2 = new Thread(() -> {            for (int i = 0; i < 1000; i++) {                counter.increment();            }        });                t1.start();        t2.start();                t1.join();        t2.join();                System.out.println("最终计数: " + counter.getCount()); // 输出应为2000    }}

总结

通过本教程,你已经掌握了 Java多线程编程 的基本概念和 Thread 类的使用方法。理解 Java线程基础 是迈向高级 并发编程入门的关键一步。记住,在实际开发中,优先使用 Runnable 接口,并注意线程安全问题。

希望这篇 Thread类使用教程 能帮助你顺利开启多线程编程之旅!