package t1;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
public class TestThread14 {
static class CallTask implements Callable<String> {
@Override
public String call() throws Exception {
return Thread.currentThread().getName() + ":CalTask";
}
}
public static void main(String[] args) throws InterruptedException, ExecutionException {
Runnable r = () -> {
System.out.println(Thread.currentThread().getName() + ":runnable");
};
List<Future<String>> restList = new ArrayList<Future<String>>();
ExecutorService es = Executors.newCachedThreadPool();
for (int i = 0; i < 5; i++) {
es.submit(r);
Future<String> result = es.submit(new CallTask());
restList.add(result);
// Thread.currentThread().sleep(500);
}
for (int i = 0; i < 5; i++) {
System.out.println(restList.get(i).get());
}
}
}
结果不定: