- 继承Thread类,重写run方法
public class CreateThreadByExtendsThread extends Thread {
@Override
public void run() {
System.out.println("extends Thread");
}
public static void main(String[] args) {
new CreateThreadByExtendsThread().start();
}
}
- 实现Runnable接口,实现run方法
public class CreateThreadByImplRunnable implements Runnable{
@Override
public void run() {
System.out.println("impl runnable");
}
public static void main(String[] args) {
new Thread(new CreateThreadByImplRunnable()).start();
}
}
- 实现Callable接口,实现call方法
public class CreateThreadByImplCallable implements Callable<String> {
@Override
public String call() {
return "impl callable";
}
public static void main(String[] args) {
FutureTask<String> futureTask = new FutureTask<String>(new CreateThreadByImplCallable());
futureTask.run();
try {
String res = futureTask.get();
System.out.println(res);
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
}
}