在Java中,创建线程有两种主要方法:
- 继承Thread类
- 实现Runnable接口
下面是这两种方法的示例:
方法1:继承Thread类
// 创建一个名为MyThread的类,该类继承自Thread类 class MyThread extends Thread { @Override public void run() { // 在这里编写你的线程代码 System.out.println("线程正在运行..."); } } public class Main { public static void main(String[] args) { // 创建MyThread对象 MyThread myThread = new MyThread(); // 启动线程 myThread.start(); } }
方法2:实现Runnable接口
// 创建一个名为MyRunnable的类,该类实现Runnable接口 class MyRunnable implements Runnable { @Override public void run() { // 在这里编写你的线程代码 System.out.println("线程正在运行..."); } } public class Main { public static void main(String[] args) { // 创建MyRunnable对象 MyRunnable myRunnable = new MyRunnable(); // 创建Thread对象并将MyRunnable对象作为参数传递 Thread thread = new Thread(myRunnable); // 启动线程 thread.start(); } }
另外,你还可以使用Java的ExecutorService
和Callable
接口来更高级地管理线程。这里是一个使用ExecutorService
的示例:
import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class Main { public static void main(String[] args) { // 创建一个固定大小的线程池 ExecutorService executorService = Executors.newFixedThreadPool(2); // 提交任务到线程池 executorService.submit(new MyRunnable()); executorService.submit(new MyRunnable()); // 关闭线程池 executorService.shutdown(); } }
这里是一个使用Callable
接口的示例:
import java.util.concurrent.*; class MyCallable implements Callable{ @Override public String call() throws Exception { // 在这里编写你的线程代码 return "线程执行完成"; } } public class Main { public static void main(String[] args) { // 创建一个单线程的执行器 ExecutorService executorService = Executors.newSingleThreadExecutor(); // 提交任务到执行器并获取Future对象 Future future = executorService.submit(new MyCallable()); try { // 获取任务执行结果 String result = future.get(); System.out.println("线程执行结果: " + result); } catch (InterruptedException | ExecutionException e) { e.printStackTrace(); } // 关闭执行器 executorService.shutdown(); } }