package com.sunc.callableTest;
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;
class User {
private String name;
private String age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
}
public class ThreadTestB {
public static void main(String[] args) {
try {
ExecutorService e = Executors.newFixedThreadPool(2);
List<Future<User>> list = new ArrayList<Future<User>>();
for (int i = 0; i < 10; i++) {
list.add(e.submit(new MyCallableA(i + "")));
System.out.println("---------------");
System.out.println(list.get(i).get());
}
e.shutdown();
System.out.println("************");
} catch (InterruptedException e1) {
e1.printStackTrace();
} catch (ExecutionException e1) {
e1.printStackTrace();
}
}
}
class MyCallableA implements Callable<User> {
String name;
public MyCallableA(String name) {
this.name = name;
}
public User call() throws Exception {
System.out.println("开始执行Callable");
User u = new User();
u.setName(name);
Thread.sleep(3000);
return null;
}
}
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;
class User {
private String name;
private String age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
}
public class ThreadTestB {
public static void main(String[] args) {
try {
ExecutorService e = Executors.newFixedThreadPool(2);
List<Future<User>> list = new ArrayList<Future<User>>();
for (int i = 0; i < 10; i++) {
list.add(e.submit(new MyCallableA(i + "")));
System.out.println("---------------");
}
//回调填充list(不能省略,可测试注释for循环查看结果)
System.out.println(list.get(i).get());
}
e.shutdown();
System.out.println("************");
} catch (InterruptedException e1) {
e1.printStackTrace();
} catch (ExecutionException e1) {
e1.printStackTrace();
}
}
}
class MyCallableA implements Callable<User> {
String name;
public MyCallableA(String name) {
this.name = name;
}
public User call() throws Exception {
System.out.println("开始执行Callable");
User u = new User();
u.setName(name);
Thread.sleep(3000);
return null;
}
}