如何在java中实现线程
实现线程的基本方法
在Java中实现线程主要有两种方式:继承Thread类和实现Runnable接口。
继承Thread类
通过继承Thread类并重写run()方法,可以定义一个线程任务。
class MyThread extends Thread {
@Override
public void run() {
System.out.println("Thread is running");
}
}
// 使用方式
MyThread thread = new MyThread();
thread.start(); // 启动线程
实现Runnable接口
更推荐的方式是实现Runnable接口,避免单继承的限制。
class MyRunnable implements Runnable {
@Override
public void run() {
System.out.println("Runnable is running");
}
}
// 使用方式
Thread thread = new Thread(new MyRunnable());
thread.start();
使用Lambda简化Runnable
Java 8以后可以通过Lambda表达式简化Runnable的实现。
Thread thread = new Thread(() -> {
System.out.println("Lambda Runnable");
});
thread.start();
线程池管理线程
直接创建线程可能导致资源浪费,推荐使用线程池(如ExecutorService)。
ExecutorService executor = Executors.newFixedThreadPool(3);
executor.submit(() -> {
System.out.println("Task executed by thread pool");
});
executor.shutdown(); // 关闭线程池
线程的常用方法
start():启动线程,调用run()方法。sleep(long millis):暂停线程指定毫秒数。join():等待线程执行完成。interrupt():中断线程。
线程同步与锁
多线程共享资源时需同步,避免竞态条件。
class Counter {
private int count = 0;
private final Object lock = new Object();
public void increment() {
synchronized (lock) {
count++;
}
}
}
线程状态
线程的生命周期包括:
NEW:新建未启动。RUNNABLE:可运行或正在运行。BLOCKED:等待锁阻塞。WAITING:无限期等待。TERMINATED:执行完成。
通过合理选择实现方式和管理线程生命周期,可以有效提升Java多线程程序的性能和可靠性。






