java如何实现多线程并发
Java多线程并发实现方法
Java提供了多种方式实现多线程并发编程,以下是核心方法:
继承Thread类
创建自定义类继承Thread并重写run()方法,通过start()启动线程:
class MyThread extends Thread {
public void run() {
System.out.println("Thread running");
}
}
MyThread thread = new MyThread();
thread.start();
实现Runnable接口
实现Runnable接口的类可作为线程任务,更推荐这种方式:
class MyRunnable implements Runnable {
public void run() {
System.out.println("Runnable running");
}
}
Thread thread = new Thread(new MyRunnable());
thread.start();
使用Callable和Future
需要返回结果时使用Callable,配合ExecutorService提交任务:

Callable<String> task = () -> {
return "Task result";
};
ExecutorService executor = Executors.newSingleThreadExecutor();
Future<String> future = executor.submit(task);
String result = future.get(); // 阻塞获取结果
线程池管理
通过ExecutorService创建线程池提高性能:
ExecutorService pool = Executors.newFixedThreadPool(4);
for (int i = 0; i < 10; i++) {
pool.execute(() -> {
System.out.println(Thread.currentThread().getName());
});
}
pool.shutdown();
同步控制
使用synchronized关键字实现同步:
class Counter {
private int count = 0;
public synchronized void increment() {
count++;
}
}
使用Lock接口
更灵活的锁机制:

Lock lock = new ReentrantLock();
lock.lock();
try {
// 临界区代码
} finally {
lock.unlock();
}
并发集合
使用线程安全的集合类:
ConcurrentHashMap<String, Integer> map = new ConcurrentHashMap<>();
map.put("key", 1);
CompletableFuture异步编程
Java 8+的异步编程方式:
CompletableFuture.supplyAsync(() -> "Hello")
.thenApply(s -> s + " World")
.thenAccept(System.out::println);
原子变量
使用AtomicInteger等原子类:
AtomicInteger atomicInt = new AtomicInteger(0);
atomicInt.incrementAndGet();
实际开发中应根据场景选择合适方案,注意线程安全、死锁预防和性能优化。






