public class ExecutorTest2 { private static final int loopNum = 1*10; public static void main(String args[]) throws InterruptedException { ExecutorTest2 TestThreadPool = new ExecutorTest2(); long bt = System.currentTimeMillis(); TestThreadPool.m1(); long et2 = System.currentTimeMillis(); System.out.println("线程池耗时:"+(et2 - bt)+ "ms"); long at = System.currentTimeMillis(); TestThreadPool.m2(); long et3 = System.currentTimeMillis(); System.out.println("main耗时:"+(et3 - at)+ "ms"); } public void m1() { StopWatch stopWatch = new StopWatch(); stopWatch.start(); ExecutorService pool = Executors.newCachedThreadPool(); for (int index = 0; index < loopNum; index++) { Runnable run = new Runnable() { public void run() { try { new Thread().sleep(1000); //模拟耗时操作 //System.out.println("[1]" + Thread.currentThread().getName()); } catch (Exception e) { } } }; pool.execute(run); } System.out.println("[1] done!"); pool.shutdown(); stopWatch.stop(); System.out.println("main线程 done!"+stopWatch.prettyPrint()); } public void m2() { StopWatch stopWatch = new StopWatch(); stopWatch.start(); AtomicInteger connectionIds = new AtomicInteger(0); for (int index = 0; index < loopNum; index++) { try { new Thread().sleep(1000); //模拟耗时操作 } catch (Exception e) { e.printStackTrace(); } } stopWatch.stop(); System.out.println("main线程 done!"+stopWatch.prettyPrint()); } } 线程池耗时:289ms main耗时:10253ms复制代码
线程
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
线程---线程终止
pthread_exit()退出线程本身,pthread_join()以阻塞方式等着别人退出
职场 休闲 pthread_join pthread_exit pthread_cancel -
线程---线程同步
我在这个只讲最最简单的锁,pthread_mutex_t结构,其中mutex是互斥的意思
职场 休闲 pthread_mutex_t -
线程---线程创建
pthread_creat()中的线程标识pthread_t是非可移植的
职场 休闲 pthread_creat -
【Java】线程、线程安全、线程状态
线程、线程安全、线程状态
java 多线程 线程状态 -
java令牌桶限流实现
QoS中的令牌桶算法 令牌桶算法 (1)Bc+Be:桶的总容量,也叫做超额的突发量。超过
java令牌桶限流实现 网络 缓存 优先级 IP -
怎么设置Dubbo框架日志级别
今天在部署dubbo监听器的时候碰到了一个非常奇葩但是感觉会很常见的问题 dubbo支持的jdk版本不正确 &n
怎么设置Dubbo框架日志级别 zookeeper dubbo tomcat jdk