在多线程编程中,经常会遇到将线程池关闭的case。这就会使用到ShutDown和ShutDownNow,这两者到底适合哪种使用场景呢? 个人对其进行了一番测试: 场景一:所有线程都是一个task,都是批处理作业,相互之间没有什么关系,某个线程的异常对结果影响不大。那么所有线程都能在执行任务结束之后可...
分类:
其他好文 时间:
2015-06-07 18:46:17
阅读次数:
323
package com.dooioo.xingcheng;import java.util.concurrent.ArrayBlockingQueue;import java.util.concurrent.ThreadPoolExecutor;import java.util.concurrent...
分类:
编程语言 时间:
2015-06-07 14:30:54
阅读次数:
123
线程池是经常用的,所以今天特地将其原理、好处、jdk的实现方式整理出来,以供以后复习之用。
问题:服务器应用程序中经常出现的情况是:单个任务处理的时间很短而请求的数目却是巨大的。
如果每个请求对应一个线程(thread-per-request)方法的不足之一是:为每个请求创建一个新线程的开销很大;为每个请求创建新线程的服务器在创建和销毁线程上花费的时间和消耗的系统资源要比花在处理实际的用户请求...
分类:
编程语言 时间:
2015-06-07 09:35:07
阅读次数:
163
---恢复内容开始---ThreadPoolExecutor继承自AbstractExecutorService。AbstractExecutorService实现了 ExecutorService接口。首先是ThreadPoolExecutor的构造方法:public ThreadPoolExec...
分类:
编程语言 时间:
2015-06-07 06:13:55
阅读次数:
136
先看一个Executor接口,该接口只有一个方法:voidexecute(Runnablecommand),用于在未来某个时刻提交一个command,这个command可以被提交到一个新的线程,或者一个线程池,或者在调用线程中。ExecutorService接口继承了Executor接口。主要是增加...
分类:
其他好文 时间:
2015-06-06 22:08:11
阅读次数:
110
Executors包含一系列静态方法,可以用于构建线程池。返回实现了 ExecutorService 接口的对象:newCachedThreadPoolnewFixedThreadPool(int threads)newSingleThreadPool返回实现了ScheduledExecutorSe...
分类:
编程语言 时间:
2015-06-06 21:59:10
阅读次数:
111
自己写的可以实现文件的下载(必须自己知道文件名),还有很多要优化。譬如:不能看可以下载的文件,输入错误无法处理,不能处理多个用户,每次只能下载一个结束,服务器没有完成守护进程;没有用函数封装,简化main程序。高级功能:支持文件夹选择下载,断点续传,尝试用多线程,多进程,线程池处理多个请求。 1 客...
分类:
其他好文 时间:
2015-06-05 13:45:12
阅读次数:
113
一、前言1.5后引入的Executor框架的最大优点是把任务的提交和执行解耦。要执行任务的人只需把Task描述清楚,然后提交即可。这个Task是怎么被执行的,被谁执行的,什么时候执行的,提交的人就不用关心了。具体点讲,提交一个Callable对象给ExecutorService(如最常用的线程池Th...
分类:
编程语言 时间:
2015-06-05 12:07:27
阅读次数:
118
上一篇文章中通过引入的一个例子介绍了在Executor框架下,提交一个任务的过程,这个过程就像我们老大的老大要找个老大来执行一个任务那样简单。并通过剖析ExecutorService的一种经典实现ThreadPoolExecutor来分析接收任务的主要逻辑,发现ThreadPoolExecutor的...
分类:
编程语言 时间:
2015-06-05 11:38:22
阅读次数:
127
一、线程池引入 Java的线程池是Java5.0以后的新功能,它让开发者更易开发高效的多线程程序,也让多线程程序的性能大大提高。Java提供的关于线程池的API是基于原有线程API的,只是用另外一种方式来使用Java的多线程变成功能。
简单来说,线程池就是一个或者多个线程的集合。一般而言,线程池有一下几个部分。
完成任务的一个或者多个线程
用于调度管理的管理线程
要求执行的任务队列
那么为什...
分类:
编程语言 时间:
2015-06-05 10:18:37
阅读次数:
230