package com.zfl;
import org.apache.shiro.crypto.hash.Hash;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.Callable;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class TestE {
public void m1(List<String> list, CountDownLatch count) {
// ExecutorService pool = Executors.newCachedThreadPool();
ExecutorService pool = Executors.newFixedThreadPool(15);
for (int i = 0; i < list.size(); i++) {
String str = list.get(i);
System.out.println(list.get(i));
Runnable run = new Runnable() {
public void run() {
try {
new Thread().sleep(1000);
//模拟耗时操作
System.out.println("[1]" + Thread.currentThread().getName()+"----"+str);
map.put(str,str);
} catch (Exception e) {
e.printStackTrace();
}
count.countDown();
}
};
pool.submit(run);
}
System.out.println("[1] done!");
pool.shutdown();
}
public static Map<String,String> map=new HashMap<>();
public static void main(String args[]) throws Exception {
TestE TestThreadPool = new TestE();
long bt = System.currentTimeMillis();
List<String> list = new ArrayList<>();
list.add("0");
list.add("1");
list.add("2");
list.add("3");
list.add("4");
list.add("5");
list.add("6");
list.add("7");
list.add("8");
list.add("10");
list.add("11");
list.add("12");
list.add("13");
list.add("14");
list.add("15");
list.add("16");
list.add("17");
list.add("18");
list.add("19");
list.add("20");
list.add("21");
list.add("22");
list.add("23");
CountDownLatch count = new CountDownLatch(23);
TestThreadPool.m1(list,count);
count.await();
long et2 = System.currentTimeMillis();
System.out.println("[1]耗时:"+(et2 - bt)+ "ms");
System.out.println(map);
map.clear();
System.out.println(map);
/* Thread thread = new Thread();
long at = System.currentTimeMillis();
TestThreadPool.m2();
long et3 = System.currentTimeMillis();
System.out.println("[2]耗时:"+(et3 - at)+ "ms");*/
}
}