public interface AcceptRecordDao {
public int getNum(PersonCode p);
}
public class PersonCode{
private String name;
private String rel[];
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String[] getRel() {
return rel;
}
public void setRel(String[] rel) {
this.rel = rel;
}
}
import java.util.List;
import java.util.concurrent.Callable;
public class PersonCodeCallable implements Callable<List<PersonCode>>{
private List<PersonCode> personList;
private AcceptRecordDao acceptRecordDao;
public void PersonCodeCallble(AcceptRecordDao acceptRecordDao, List<PersonCode> personList) {
this.personList = personList;
this.acceptRecordDao = acceptRecordDao;
}
@Override
public List<PersonCode> call() throws Exception {
if(!personList.isEmpty()) {
for(PersonCode person : personList) {
person.getName();
person.setName("张三");
acceptRecordDao.getNum(person);
}
}
return personList;
}
}
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
public class TestPool {
//@Autowrite
private AcceptRecordDao acceptRecordDao;
public static void getSum(List<PersonCode> list) {
List<PersonCode> resultList = new ArrayList<>();
List<List<PersonCode>> lists = com.google.common.collect.Lists.partition(list, 3);
List<Future<List<PersonCode>>> futureList = new ArrayList<>();
ExecutorService fp = Executors.newFixedThreadPool(10);
if(!lists.isEmpty()) {
for(List<PersonCode> partitionList : lists) {
PersonCodeCallable pc = new PersonCodeCallable(acceptRecordDao, partitionList);
Future<List<PersonCode>> future = fp.submit(pc);
futureList.add(future);
}
for(Future<List<PersonCode>> futures : futureList) {
try {
List<PersonCode> p = futures.get();
if(!p.isEmpty()) {
resultList.addAll(p);
}
}catch(Exception e) {
}
}
}
fp.shutdown();
}
}