实现 Runnable 接口
public static void main(String[] args) {
Runnable runnable = new Runnable() {
@Override
public void run() {
}
};
runnable.run();
}
实现 Callable 接口(可以有返回值,通过 FutureTask 进行封装)
public static void main(String[] args) throws ExecutionException, InterruptedException {
Callable<Object> callable = new Callable<Object>() {
@Override
public Object call() throws Exception {
return "callable";
}
};
FutureTask<Object> futureTask = new FutureTask<Object>(callable);
Thread thread = new Thread(futureTask);
thread.start();
System.out.println(futureTask.get().toString());
}
继承 Thread 类
public class MyThread extends Thread {
public void run() {
}
}
public static void main(String[] args) {
MyThread myThread = new MyThread();
myThread.start();
}
实现接口 VS 继承 Thread
- Java 不支持多重继承,因此继承了 Thread 类就无法继承其它类,但是可以实现多个接口;
- 类可能只要求可执行就行,继承整个 Thread 类开销过大;