44 lines
1.2 KiB
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());
|
|
}
|
|
});
|
|
}
|
|
}
|
|
}
|