Java 基础文章

是大法师对方的
傻大个开始的咪咕爱看
java
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.FutureTask;
public class ThreadCreateDemo {
public static void main(String[] args) throws ExecutionException, InterruptedException {
// 1. 继承 Thread 类
Thread t1 = new Thread() {
@Override
public void run() {
System.out.println("1. 继承 Thread: " + Thread.currentThread().getName());
}
};
// 2. 实现 Runnable 接口(推荐,因为单继承限制)
Runnable task = () -> System.out.println("2. 实现 Runnable: " + Thread.currentThread().getName());
Thread t2 = new Thread(task);
// 3. 实现 Callable 接口(带返回值,支持抛异常)
Callable<String> callable = () -> {
Thread.sleep(100);
return "3. Callable 返回值: " + Thread.currentThread().getName();
};
FutureTask<String> futureTask = new FutureTask<>(callable);
Thread t3 = new Thread(futureTask);
// 4. 使用线程池(重点,实际项目最常用)
Thread t4 = new Thread(() -> System.out.println("4. 线程池通常替代手动 new"));
t1.start();
t2.start();
t3.start();
t4.start();
// 获取 Callable 的返回结果(会阻塞主线程)
System.out.println(futureTask.get());
}
}