package ListenableFuture;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.Callable;
import java.util.concurrent.Executors;
import com.google.common.collect.Lists;
import com.google.common.util.concurrent.Futures;
import com.google.common.util.concurrent.ListenableFuture;
import com.google.common.util.concurrent.ListeningExecutorService;
import com.google.common.util.concurrent.MoreExecutors;
public class ceshi {
public static void main(String[] args){
List<ListenableFuture<Boolean>> futures = Lists.newArrayList();
ListeningExecutorService pool = MoreExecutors.listeningDecorator(Executors.newFixedThreadPool(5));;
int t = 1;
List<String> ttList = new ArrayList<>();
ttList.add("1");
ttList.add("2");
ttList.add("3");
ttList.add("4");
ttList.add("5");
final List<String> insertList = new ArrayList<String>();
for (int k = 0; k < ttList.size(); k++) {
insertList.add(ttList.get(k));
if (t % 3 == 0) {
ListenableFuture queryApp = pool.submit(new Callable<Boolean>() {
public Boolean call() {
for(int i=0;i<100000;i++){
System.out.println("111");
}
return Boolean.TRUE;
}
});
futures.add(queryApp);
insertList.clear();
}
t++;
}
if (insertList != null && insertList.size() > 0) {
ListenableFuture queryApp = pool.submit(new Callable<Boolean>() {
public Boolean call() {
for(int i=0;i<100000;i++){
System.out.println("222");
}
return Boolean.TRUE;
}
});
futures.add(queryApp);
}
final ListenableFuture<List<Boolean>> resultsFuture = Futures.successfulAsList(futures);
try {
resultsFuture.get();//等待线程执行完成后输出结果 (这个是为了等线程全部执行完返回执行结果再来执行主线程)
System.out.println("线程全部执行完了");
pool.shutdown();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
}
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.Callable;
import java.util.concurrent.Executors;
import com.google.common.collect.Lists;
import com.google.common.util.concurrent.Futures;
import com.google.common.util.concurrent.ListenableFuture;
import com.google.common.util.concurrent.ListeningExecutorService;
import com.google.common.util.concurrent.MoreExecutors;
public class ceshi {
public static void main(String[] args){
List<ListenableFuture<Boolean>> futures = Lists.newArrayList();
ListeningExecutorService pool = MoreExecutors.listeningDecorator(Executors.newFixedThreadPool(5));;
int t = 1;
List<String> ttList = new ArrayList<>();
ttList.add("1");
ttList.add("2");
ttList.add("3");
ttList.add("4");
ttList.add("5");
final List<String> insertList = new ArrayList<String>();
for (int k = 0; k < ttList.size(); k++) {
insertList.add(ttList.get(k));
if (t % 3 == 0) {
ListenableFuture queryApp = pool.submit(new Callable<Boolean>() {
public Boolean call() {
for(int i=0;i<100000;i++){
System.out.println("111");
}
return Boolean.TRUE;
}
});
futures.add(queryApp);
insertList.clear();
}
t++;
}
if (insertList != null && insertList.size() > 0) {
ListenableFuture queryApp = pool.submit(new Callable<Boolean>() {
public Boolean call() {
for(int i=0;i<100000;i++){
System.out.println("222");
}
return Boolean.TRUE;
}
});
futures.add(queryApp);
}
final ListenableFuture<List<Boolean>> resultsFuture = Futures.successfulAsList(futures);
try {
resultsFuture.get();//等待线程执行完成后输出结果 (这个是为了等线程全部执行完返回执行结果再来执行主线程)
System.out.println("线程全部执行完了");
pool.shutdown();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
}