public class HelloWorld {
public static void main(String[] args) {
ExecutorService executor = Executors.newCachedThreadPool();
Task task = new Task();
Integer i=1;
Future<Integer> result = executor.submit(task,i);
executor.shutdown();
try {
Thread.sleep(1000);
} catch (InterruptedException e1) {
e1.printStackTrace();
}
System.out.println("主线程在执行任务");
try {
System.out.println("task运行结果"+result.get());
} catch (InterruptedException | ExecutionException e) {
e.printStackTrace();
}
System.out.println("所有任务执行完毕");
}
}
class Task implements Runnable{
@Override
public void run() {
System.out.println("子线程在进行计算");
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
int sum = 0;
for(int i=0;i<100;i++)
sum += i;
}
}
可以看到结果是我们输入的参数
为什么呢,一步步看
还有这个重写方法
发现有个Adapter
,点进去
好家伙,直接把我传入的 T Result
,原路返回了。