Java 并发编程和多线程是高级开发中的一个重要部分,涉及多线程的创建、线程协同、线程安全、性能优化、并发工具等内容。以下是并发编程中的核心知识点、常见问题及解决方案的详细总结:
1. 基础知识
什么是线程?
线程是操作系统中最小的执行单位。一条线程是一系列被 CPU 执行的指令流。Java 通过 java.lang.Thread
和 java.util.concurrent
API 提供对线程的创建和管理。
线程与进程的区别
- 进程:一个程序的运行实例,每个进程都有自己的内存空间和资源。
- 线程:进程中的一个执行单元,线程共享进程的内存和资源。
2. 多线程创建方式
(1)继承 Thread
类
Java
class MyThread extends Thread {
@Override
public void run() {
System.out.println("Thread is running...");
}
}
new MyThread().start();
(2)实现 Runnable
接口
Java
class MyRunnable implements Runnable {
@Override
public void run() {
System.out.println("Thread is running...");
}
}
new Thread(new MyRunnable()).start();
(3)使用 Callable
和 Future
(带返回值)
Java
import java.util.concurrent.*;
Callable<Integer> task = () -> {
return 123;
};
ExecutorService executor = Executors.newSingleThreadExecutor();
Future<Integer> result = executor.submit(task);
System.out.println(result.get()); // 输