void processSeq(){
for(Element e:elements){
process(e);
}
}
void processInPatallel(Executor exec,List<Element> elements){
for(final Element e : element){
exec.execute(
new Runnable(){
public void run(){
process(e);
}
}
);
}
}
串行递归转位并行递归
public<T> void seqRecursive(){
for(Node<T> n: nodes){
results.add(n.compute());
seqRecursive(n.getChildren(),results);
}
}
public<T> void parallelRecursive(final Executor exec,List<T> nodes,final Collection<T> results){
for(final Node<T> n : nodes){
exec.execute(
new Runnable(){
public void run(){
results.add(n.compute());
}
}
);
parallelRecursive(exec,n.getChildren(),results);
}
}