有时候并不是在任何场景下使用线程池,效率都比顺序执行程序快,请看下面例子程序:
这是使用线程池程序。
ThreadPoolExecutor threadPool = new ThreadPoolExecutor(CORE_POOL_SIZE, MAX_POOL_SIZE, KEEP_ALIVE_TIME, TimeUnit.SECONDS, nocardTaskQueue); threadPool.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy()); long threadStartTime = System.currentTimeMillis(); for (int i = 0; i < 1000; i++) { Future future = threadPool.submit(new TestRunnable()); try { future.get(1000, TimeUnit.SECONDS); } catch (Exception e) { e.printStackTrace(); } } long threadEndTime = System.currentTimeMillis(); System.out.println("采用线程池处理:" + (threadEndTime - threadStartTime));
这是顺序执行程序:
long objectStartTime = System.currentTimeMillis(); for (int i = 0; i < 1000; i++) { TestRunnable tt = new TestRunnable(); tt.run(); } long objectEndTime = System.currentTimeMillis(); System.out.println("采用普通类处理:" + (objectEndTime - objectStartTime));
执行结果是:
相关推荐
线程池线程池线程池线程池线程池线程池线程池线程池线程池线程池线程池线程池线程池线程池线程池线程池线程池线程池线程池线程池线程池线程池线程池线程池线程池线程池线程池线程池线程池线程池线程池线程池线程池...
阻塞线程池阻塞线程池阻塞线程池阻塞线程池阻塞线程池阻塞线程池阻塞线程池阻塞线程池阻塞线程池阻塞线程池阻塞线程池阻塞线程池阻塞线程池阻塞线程池阻塞线程池阻塞线程池阻塞线程池阻塞线程池阻塞线程池阻塞线程池...
线程池提交优先级,执行优先级
线程池各类区别使用场景, 工作久了才知道理论的重要性。
线程池原理以及适用场景
关闭线程池
b:在实际使用中,服务器在创建和销毁线程上花费的时间和消耗的系统资源都相当大,甚至可能要比在处理实际的用户请求的时间和资源要多的多。除了创建和销毁线程的开销之外,活动的线程也需要消耗系统资源。如果在一...
VC实现线程池
源码演示了多线程写法,主要是对比精易模块线程池,鱼刺模块线程池。@在人间。
线程池模板 (可以让你快速地使用线程池技术) 帮助你学习线程池
主要给大家介绍了关于java线程池使用后到底要不要关闭的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
线程池技术在并发服务器中的应用
讲述了java线程池的优点,参数,6种线程池的使用场景,线程池用到的handler,线程任务的提交方式等等。
c++ 实现的线程池(linux环境下),大家一块学习,共同进步。
使用Windows自带的线程池功能,比你写的线程池性能好得多
简单的线程池程序+中文文档 包结构: com.tangkai.threadpool --SimpleThread.java 工作线程 --TestThreadPool.java 程序入口 --ThreadPoolManager.java 线程池管理类
在线程池缓存线程可用已有的闲置线程来执行新任务,避免了创建/销毁带来的系统开销。 1.2 线程并发数量过多,抢占系统资源从而导致阻塞。 线程能共享系统资源,如果同时执行的线程过多,就有可能导致系统资源不足而...
Java线程池使用说明Java线程池使用说明Java线程池使用说明
Windows下一个比较完美的线程池实现和示例 本线程池提供了如下功能: 1.能根据任务个数和当前线程的多少在最小/最大线程个数之间自动调整(Vista后的系统有 SetThreadpoolThreadMaximum 等函数有类似功能); 2.能方便...
什么是线程池?简单点说,线程池就是有一堆已经创建好了的线程,初始它们都处于空闲等待状态,当有新的任务需要处理的时候,就从这个池子里面取一个空闲等待的线程来处理该任务,当处理完成了就再次把该线程放回池中...