在Java中,新建线程有多种方法。以下是一些常见的方法:
- 继承Thread类:
class MyThread extends Thread { public void run() { // 线程执行的代码 } } public class Main { public static void main(String[] args) { MyThread myThread = new MyThread(); myThread.start(); // 启动线程 } }
- 实现Runnable接口:
class MyRunnable implements Runnable { public void run() { // 线程执行的代码 } } public class Main { public static void main(String[] args) { MyRunnable myRunnable = new MyRunnable(); Thread thread = new Thread(myRunnable); // 创建线程 thread.start(); // 启动线程 } }
- 使用Callable接口和Future:
import java.util.concurrent.Callable; import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Future; class MyCallable implements Callable{ public String call() throws Exception { // 线程执行的代码,返回值类型为String return "Hello, World!"; } } public class Main { public static void main(String[] args) throws InterruptedException, ExecutionException { ExecutorService executorService = Executors.newSingleThreadExecutor(); MyCallable myCallable = new MyCallable(); Future future = executorService.submit(myCallable); // 提交任务 String result = future.get(); // 获取任务结果 System.out.println(result); // 输出结果 executorService.shutdown(); // 关闭线程池 } }
- 使用Java 8的CompletableFuture:
import java.util.concurrent.CompletableFuture; class MyCompletableFuture { public static CompletableFuturehelloWorld() { return CompletableFuture.supplyAsync(() -> { // 线程执行的代码,返回值类型为String return "Hello, World!"; }); } } public class Main { public static void main(String[] args) { MyCompletableFuture.helloWorld().thenAccept(result -> { System.out.println(result); // 输出结果 }); } }
这些方法都可以用于在Java中创建和启动线程。你可以根据自己的需求和场景选择合适的方法。