Kotlin-Demo/bunny/thread/ThreadTest8.java

44 lines
1.2 KiB
Java

package bunny.thread;
import java.util.Arrays;
import java.util.List;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
public class ThreadTest8 {
public static void main(String[] args) throws Exception {
try (ExecutorService pool = Executors.newFixedThreadPool(4)) {
Callable<String> task1 = () -> {
Thread.sleep(2000);
return "Task 1";
};
Callable<String> task2 = () -> {
Thread.sleep(3000);
return "Task 2";
};
Callable<String> task3 = () -> {
Thread.sleep(1500);
return "Task 3";
};
List<Callable<String>> tasks = Arrays.asList(task1, task2, task3);
// 执行所有任务
List<Future<String>> results = pool.invokeAll(tasks);
results.forEach(result -> {
try {
String s = result.get();
System.out.println(s);
} catch (Exception e) {
System.out.println(e.getMessage());
}
});
}
}
}