package callable;
import java.util.concurrent.Callable;
// 实现Callable接口,范型是返回值的类型
public class MyCallable implements Callable<String> {
@Override
public String call() throws Exception {
for (int i = 0; i < 100; i++) {
System.out.println("跟女生表白" + i);
}
// 返回值就是表示线程运行完毕之后的结果
return "答应";
}
}
package callable;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.FutureTask;
public class Demo {
public static void main(String[] args) throws ExecutionException, InterruptedException {
// 线程开启之后需要执行里面的call方法
MyCallable mc = new MyCallable();
// 可以获得线程执行完毕之后的结果,也可以作为参数传递给Thread对象
FutureTask<String> ft = new FutureTask<>(mc);
Thread tr = new Thread(ft);
tr.start();
// 回去返回值
// 注意:get方法一定要放在start之后
String s = ft.get();
System.out.println(s);
}
}