一、方式汇总
1. 继承Thread类
2. 实现Runnable接口
3. 实现Callable接口
二、具体实现
2.1 继承Thread类
1. 创建一个继承Thread的类
public class MyThread extends Thread {
@Override
public void run() {
System.out.println("通过继承Thread创建线程");
}
}
2. 在主函数中创建实例并启动线程
public class Main {
public static void main(String[] args) {
// 1. 创建MyThread实例
MyThread myThread = new MyThread();
// 2. 启动线程
myThread.start();
}
}
2.2 实现Runnable接口
1. 创建一个实现Runnable接口的类
public class Task implements Runnable {
@Override
public void run() {
System.out.println("通过实现Runnable创建线程");
}
}
2. 在主函数中使用
public class Main {
public static void main(String[] args) {
// 1. 创建Task实例
Task task = new Task();
// 2. 创建线程
Thread thread =new Thread(task);
// 3. 启动线程
thread.start();
}
}
2.3 实现Callable接口
1. 创建一个实现Callable接口的类
public class Task implements Callable<String> {
@Override
public String call() throws Exception {
System.out.println("通过实现Callable创建线程");
return "线程执行成功";
}
}
2. 在主函数中使用
public class Main {
public static void main(String[] args) throws ExecutionException, InterruptedException {
// 1. 创建Task实例
Task task = new Task();
// 2. 创建FutureTask实例
FutureTask<String> futureTask = new FutureTask<>(task);
// 3. 创建线程
Thread thread = new Thread(futureTask);
// 4. 启动线程
thread.start();
// 5. 获取线程返回结果
String result = futureTask.get();
// 6. 打印返回结果
System.out.println(result);
}
}
3. 输出结果