开启线程的三种方式:Thread、Runnable、Callable(有返回)
public class CallableTest {
public static void main(String[] args) throws ExecutionException, InterruptedException {
new MyThread().start();
}
}
class MyThread extends Thread {
@Override
public void run() {
System.out.println("let Thread go!");
}
}
public class CallableTest {
public static void main(String[] args) throws ExecutionException, InterruptedException {
new Thread(new MyThread()).start();
}
}
class MyThread implements Runnable {
@Override
public void run() {
System.out.println("let Runnable go!");
}
}
- 实现Callable接口:有返回结果、泛型的参数等于方法的返回值
public class CallableTest {
public static void main(String[] args) throws ExecutionException, InterruptedException {
MyThread thread = new MyThread();
FutureTask futureTask = new FutureTask(thread);
new Thread(futureTask).start();
String str = (String) futureTask.get();
System.out.println(str);
}
}
class MyThread implements Callable<String> {
@Override
public String call() throws Exception {
return "call方法执行";
}
}