package my; import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.TimeUnit; public class Test { public static void main(String[] args) throws InterruptedException { final List sList = Collections.synchronizedList(new ArrayList<Student>()); ExecutorService service = Executors.newFixedThreadPool(20); for(int i = 0;i<20;i++){ final int finali = i; service.submit(new Runnable() { @Override public void run() { sList.add(new Student("a", finali)); } }); } service.shutdown(); service.awaitTermination(Long.MAX_VALUE, TimeUnit.DAYS); for(Object s:sList){ System.out.println(((Student)s).getName()+" "+((Student)s).getAge()); } } }注意:shutdown()之后的代码并不会等待线程执行完后再执行,需要使用awaitTermination函数等待所有线程执行完成
关于ExecutorService 的用法
猜你喜欢
转载自blog.csdn.net/tiger1334/article/details/52312208
今日推荐
周排行