这是
example的一些示例代码.我需要知道的是在calllable上调用call()的时候?触发它的是什么?
- public class CallableExample {
- public static class WordLengthCallable
- implements Callable {
- private String word;
- public WordLengthCallable(String word) {
- this.word = word;
- }
- public Integer call() {
- return Integer.valueOf(word.length());
- }
- }
- public static void main(String args[]) throws Exception {
- ExecutorService pool = Executors.newFixedThreadPool(3);
- Set<Future<Integer>> set = new HashSet<Future<Integer>>();
- for (String word: args) {
- Callable<Integer> callable = new WordLengthCallable(word);
- Future<Integer> future = pool.submit(callable); //**DOES THIS CALL call()?**
- set.add(future);
- }
- int sum = 0;
- for (Future<Integer> future : set) {
- sum += future.get();//**OR DOES THIS CALL call()?**
- }
- System.out.printf("The sum of lengths is %s%n",sum);
- System.exit(sum);
- }
- }