- 浏览: 49776 次
文章分类
最新评论
1. 线程池可以节省创建多个线程带来的开销问题。
2. 线程池的参数如下:
说明:
线程池按以下行为执行任务
1)当线程数小于核心线程数时,创建线程。
2)当线程数大于等于核心线程数,且任务队列未满时,将任务放入任务队列。
3)当线程数大于等于核心线程数,且任务队列已满
i)若线程数小于最大线程数,创建线程
ii)若线程数等于最大线程数,抛出异常,拒绝任务
3. 例子
结果说明:
1)如果队列不指定大小,默认大小无限大,这样队列不会满,每次只有三个coreThread来
跑(大于核心线程数,但队列不满,任务放入队列中);
2)如果指定队列大小为10,则最大的10个工作线程来跑;
3)如果指定队列大小为5,则队列满了,后面的线程被reject掉了。
2. 线程池的参数如下:
public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue<Runnable> workQueue) { this(corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue, Executors.defaultThreadFactory(), defaultHandler); }
说明:
线程池按以下行为执行任务
1)当线程数小于核心线程数时,创建线程。
2)当线程数大于等于核心线程数,且任务队列未满时,将任务放入任务队列。
3)当线程数大于等于核心线程数,且任务队列已满
i)若线程数小于最大线程数,创建线程
ii)若线程数等于最大线程数,抛出异常,拒绝任务
3. 例子
public static void main(String args[]) throws InterruptedException { ThreadPoolExecutor executor; executor = new ThreadPoolExecutor(3, 10, 5, TimeUnit.SECONDS, new LinkedBlockingQueue<Runnable>(10)); for(int i=0;i<20;i++){ Runnable r=new Runnable(){ @Override public void run() { System.out.println("thread run..."); try { Thread.sleep(10000); } catch (InterruptedException e) { e.printStackTrace(); } } }; executor.execute(r); } }
结果说明:
1)如果队列不指定大小,默认大小无限大,这样队列不会满,每次只有三个coreThread来
跑(大于核心线程数,但队列不满,任务放入队列中);
2)如果指定队列大小为10,则最大的10个工作线程来跑;
3)如果指定队列大小为5,则队列满了,后面的线程被reject掉了。
发表评论
-
Java IO 读文件的各种方法总结
2016-01-01 15:00 664IO分为字节流和字符流,字符就是简单的字符串存储,从理伦上讲, ... -
动态代理的应用
2015-12-22 17:30 690代理模式作为开发人员 ... -
Java Restful
2015-12-19 14:01 395对于两个系统之间交互信息,有两种常见的方式:webservic ... -
request.getInputStream() 只能读一次的解决方法
2015-12-17 12:17 2291我们知道request.getInputStream()只能读 ... -
java Hessian 版本冲突问题解决方法
2015-12-11 19:44 818今天在实际的项目发现了一个问题就是hessian的版本不兼容的 ... -
Java RSA 加密 解密 签名 验签
2015-12-09 10:01 58651. 加密的作用 1)明文变密文(你不知道密钥是很难解密的) ... -
Java Xstream xml 与bean之间的转换
2015-12-09 08:31 692xml文件如下: <mvc> & ... -
XPATH 解析XML
2015-12-09 08:28 3971. 表达式描述 nodename 选取此节点的所有子节 ... -
Java Dom4j 解析XML
2015-12-09 08:23 326Dom4j和JDom是很相似的,用起来十分方便。 XML文件 ... -
Java JDom 解析xml
2015-12-09 08:22 359JDOM在解析XML在代码量之上比之前的方法(DOM和SAX要 ... -
Java SAX 解析xml
2015-12-08 18:13 360在上一篇中http://gaofulai1988.iteye. ... -
Java XML解析系列
2015-12-08 18:00 678Java解析XML有多种方式,因此需要分为几个不同的系列来讲。 ... -
Java 背包算法计算从数组中找若干个数使其最接近某个数
2015-12-08 17:38 1933背包的算法的动态方式如下: f(i,w) = max{ f(i ... -
C3P0 连接分析
2015-12-01 19:05 850最近在看C3P0的原理,还是将C3P0的源码导入到Ecplis ... -
微信开发的原理
2015-11-30 10:10 1275微信在现在的生活中,扮演着举足轻重的角色,现在怎么东西都在微信 ... -
JAVA Timestamp 与Data的转化以及BigDecimal 保留两位小数
2015-11-27 14:47 15941. BigDecimal 保留两位小数 今天在项目中遇到这 ... -
java try catch finally return 继续
2015-11-27 13:45 361之前在博客中有一篇文章讨论过异常中return值的情况,有兴趣 ... -
Java JDBC executeBatch 批量操作
2015-11-27 08:05 1545对JDBC 的 CRUD操作,我相信对于每个开发人员来讲,是十 ... -
Java WeakHashMap 分析
2015-11-26 08:17 577昨天在我们的系统中看 ... -
加密与解密
2015-11-18 18:12 438我本身不是学密码出身的,但在工作中经常要使用加密与解密的东东, ...
相关推荐
ThreadPoolExecutor源码解析.pdf
ThreadPoolExecutor使用和思考
ThreadPoolExecutor源码解析.md
ThreadPoolExecutor线程池,有详尽介绍,本人进行过测试,可以使用
主要介绍了Java ThreadPoolExecutor的参数深入理解的相关资料,需要的朋友可以参考下
线程池原理-ThreadPoolExecutor源码解析 1.构造方法及参数 2.阻塞对列: BlockingQueue 3.线程工厂: DefaultThreadFactory 4.拒绝策略: RejectedExecutionHandler 5.执行线程 Executor
(转)线程池:java_util_ThreadPoolExecutor 比较详细的介绍了ThreadPoolExecutor用法与属性
在《阿里巴巴java开发手册》中...另外由于前面几种方法内部也是通过ThreadPoolExecutor方式实现,使用ThreadPoolExecutor有助于大家明确线程池的运行规则,创建符合自己的业务场景需要的线程池,避免资源耗尽的风险。
public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long
一个关于java 线程池的例子,也适合android
线程池ThreadPoolExecutor实战及其原理分析(下)线程池ThreadPoolExecutor实战及其原理分析(下)线程池ThreadPoolExecutor实战及其原理分析(下)线程池ThreadPoolExecutor实战及其原理分析(下)线程池ThreadPoolExecutor...
线程池的工作主要是控制运行的线程的数量,处理过程中将任务放入队列,然后在线程创建后启动这些任务,如果线程数量超过了最大数量,那么超出数量的线程排队等候,等其他线程执行完毕再从队列中取出任务来执行。...
ThreadPoolExecutor的使用和Android常见的4种线程池使用介绍
NULL 博文链接:https://bijian1013.iteye.com/blog/2284676
1.资源简介:PyQt5中使用多线程模块QThread解决了PyQt5界面程序执行比较耗时操作时,程序卡顿出现的无响应以及界面输出无法实时显示的问题,采用线程池ThreadPoolExecutor解决了ping多个IP多任务耗时问题。...
ThreadPoolExecutor有几个构造函数,最多参数的构造函数最常用,下面会详细介绍各个参数的含义及其几个参数之间的关系: <span xss=removed>ThreadPoolExecutor(corePoolSize, maximumPoolSize, keepAliveTime, ...
介绍ThreadPoolExecutor中池和queue配合使用的机制
死磕ThreadPoolExecutor线程池.pdf!!死磕ThreadPoolExecutor线程池.pdf死磕ThreadPoolExecutor线程池.pdf死磕ThreadPoolExecutor线程池.pdf
JDK1[1].5中的线程池(ThreadPoolExecutor)使用简介