public class Atest { public final static int count = 10000; public static void main(String[] args) { long startTime = System.currentTimeMillis(); // test1();//cost = [200902] cost = [301728] test2();//cost = [593] long endTime = System.currentTimeMillis(); System.out.println("cost = [" + (endTime - startTime) + "]"); } public static void test1(){ for(int i = 0; i < count; i ++){ AtomicInteger atomicInteger = new AtomicInteger(i); Futurefuture = ThreadPoolUtils.CRM_TEMPLATE_MESSAGE_SEND_THREAD_POOL.submit(new TestCallabele(i)); FunctionUtil.runIgnoreException(() -> insert(atomicInteger.get(), future.get())); } } public static void test2(){ for(int i = 0; i < count; i ++){ AtomicInteger atomicInteger = new AtomicInteger(i); ThreadPoolUtils.CRM_TEMPLATE_MESSAGE_SEND_THREAD_POOL.execute(() -> { FunctionUtil.runIgnoreException(() -> insert(atomicInteger.get(), handleTask(atomicInteger.get()))); }); } } public static void insert(int taskNum, Boolean bool){ try { Thread.sleep(100L); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("insert into t_b values (" + taskNum + "," + bool + ")"); } public static Boolean handleTask(int taskNum){ return FunctionUtil.getIgnoreException(() -> { Thread.sleep(200L); System.out.println(">>>任务" + taskNum + "启动"); return true; }, false).get(); } } class TestCallabele implements Callable{ private int taskNum; public TestCallabele(int taskNum){ this.taskNum = taskNum; } @Override public Object call() throws Exception { return Atest.handleTask(taskNum); } }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)