1. 创建自定义线程 最简单的方式是创建一个自定义的 `Thread` 子类,并重写它的 `run()` 方法。 ```java public class MyThread extends Thread { @Override public void run() { // 在这里放置你的多线程任务代码,通常调用其他方法或执行特定逻辑。 System.out.println("Hello, I'm a thread!"); } } public class Main { public static void main(String[] args) { MyThread thread = new MyThread(); thread.start(); // 启动新线程 } } ```
2. 使用 `Callable` 和 `FutureTask`
当需要在多线程中获取返回值时,可以使用 `Callable` 接口和 `FutureTask` 类。
```java
public class CallableExample {
public static void main(String[] args) throws ExecutionException, InterruptedException {
ExecutorService executor = Executors.newSingleThreadExecutor();
Future 3. 使用 `ExecutorService` 和 `ThreadPool`
可以使用 `ExecutorService` 来管理线程池,这有助于更高效地管理并发任务。
```java
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class ExecutorServiceExample {
public static void main(String[] args) throws InterruptedException {
ExecutorService executor = Executors.newFixedThreadPool(5);
for (int i = 0; i < 10; i++) {
final int idx = i;
Runnable task = () -> System.out.println("Task " + idx + " from thread: " + Thread.currentThread().getName());
executor.execute(task);
}
executor.shutdown();
}
}
```
4. 使用 `java.util.concurrent` 包中的类
Java 提供了多个用于并发操作的工具和框架,例如:
-CountDownLatch: -CyclicBarrier: -Semaphore: 总结
Java 中实现多线程编程的主要思路可以通过创建 `Thread`、使用 `Callable` 和 `FutureTask` 来获取任务结果、利用 `ExecutorService` 和线程池来高效处理并发任务,以及使用 `java.util.concurrent` 包中的工具类来解决同步和并发控制问题。选择合适的工具取决于具体的应用场景和个人的编程习惯。
这些示例展示了 Java 多线程的基础用法和高级应用,对于更深入的理解,可以阅读官方文档或相关教程以掌握更多技巧和最佳实践