`
lanhuidong
  • 浏览: 223771 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

关于ThreadPoolExecutor的理解

    博客分类:
  • Java
阅读更多

做Java也有4年了,原来对于ThreadPoolExecutor的maximumPoolSize一直存在误解。

public ThreadPoolExecutor(int corePoolSize,
                              int maximumPoolSize,
                              long keepAliveTime,
                              TimeUnit unit,
                              BlockingQueue<Runnable> workQueue)

 假设:corePoolSize=3,maximumPoolSize=5,workQueue的容量为100,有如下调用代码:

 

for (int i = 0; i < 10;i++){
             executorService.execute(new Runnable(){

                 @Override
                 public void run() {
                     System.out.println("1:"+ new Date());
                     try {
                         Thread.sleep(1000*3);
                     } catch (InterruptedException e) {
                         e.printStackTrace();
                     }
                 }
             });
         }

 原本以为线程池会创建5个线程来执行任务,结果只有3个线程。开始以为任务数比corePoolSize大时就回创建更多的线程,原来任务超过workQueue的容量之后才会创建更多的线程来执行任务。也就是说如果是无界的队列,那么maximumPoolSize是否设置是无所谓的。

分享到:
评论

相关推荐

    说说你对ThreadPoolExecutor的理解.docx

    说说你对ThreadPoolExecutor的理解.docx

    Android之线程池ThreadPoolExecutor的简介

    所以它的重要性不言而喻,但是它的复杂性也大,理解上可能会有问题,不过作为安卓工程师,了解这个也是必然的。 ThreadPoolExecutor有几个构造函数,最多参数的构造函数最常用,下面会详细介绍各个参数的含义及其几...

    Java ThreadPoolExecutor的参数深入理解

    主要介绍了Java ThreadPoolExecutor的参数深入理解的相关资料,需要的朋友可以参考下

    深入理解Java线程池:ThreadPoolExecutor _ Idea Buffer1

    1. RUNNING :能接受新提交的任务,并且也能处理阻塞队列中的任务 2. SHUTDOWN:关闭状态,不再接受新提交的任务,但却可以继续处理阻塞队列中已保

    11-线程池ThreadPoolExecutor底层原理源码分析(上)-周瑜.pdf

    14、深入理解井发可见性、有序性、原子性与JMM内存模型 (1).pdf 15、CPU缓存架构详解&高性能内存队列Disruptor 实战 (1).pdf 16、常用并发设计模式精讲 (1).pdf designpattern.zip disruptor.zip forkjoin.zip jmm(1...

    12-线程池ThreadPoolExecutor底层原理源码分析(下)-周瑜.pdf

    14、深入理解井发可见性、有序性、原子性与JMM内存模型 (1).pdf 15、CPU缓存架构详解&高性能内存队列Disruptor 实战 (1).pdf 16、常用并发设计模式精讲 (1).pdf designpattern.zip disruptor.zip forkjoin.zip jmm(1...

    java 中ThreadPoolExecutor原理分析

    主要介绍了java 中ThreadPoolExecutor原理分析的相关资料,需要的朋友可以参考下

    14、深入理解并发可见性、有序性、原子性与JMM内存模型(1).pdf

    14、深入理解井发可见性、有序性、原子性与JMM内存模型 (1).pdf 15、CPU缓存架构详解&高性能内存队列Disruptor 实战 (1).pdf 16、常用并发设计模式精讲 (1).pdf designpattern.zip disruptor.zip forkjoin.zip jmm(1...

    16、常用并发设计模式精讲(1).pdf

    14、深入理解井发可见性、有序性、原子性与JMM内存模型 (1).pdf 15、CPU缓存架构详解&高性能内存队列Disruptor 实战 (1).pdf 16、常用并发设计模式精讲 (1).pdf designpattern.zip disruptor.zip forkjoin.zip jmm(1...

    13、线程池ForkJoinPool实战及其工作原理分析(1).pdf

    14、深入理解井发可见性、有序性、原子性与JMM内存模型 (1).pdf 15、CPU缓存架构详解&高性能内存队列Disruptor 实战 (1).pdf 16、常用并发设计模式精讲 (1).pdf designpattern.zip disruptor.zip forkjoin.zip jmm(1...

    15、CPU缓存架构详解&高性能内存队列Disruptor实战(1).pdf

    14、深入理解井发可见性、有序性、原子性与JMM内存模型 (1).pdf 15、CPU缓存架构详解&高性能内存队列Disruptor 实战 (1).pdf 16、常用并发设计模式精讲 (1).pdf designpattern.zip disruptor.zip forkjoin.zip jmm(1...

    designpattern.zip

    14、深入理解井发可见性、有序性、原子性与JMM内存模型 (1).pdf 15、CPU缓存架构详解&高性能内存队列Disruptor 实战 (1).pdf 16、常用并发设计模式精讲 (1).pdf designpattern.zip disruptor.zip forkjoin.zip jmm(1...

    forkjoin.zip

    14、深入理解井发可见性、有序性、原子性与JMM内存模型 (1).pdf 15、CPU缓存架构详解&高性能内存队列Disruptor 实战 (1).pdf 16、常用并发设计模式精讲 (1).pdf designpattern.zip disruptor.zip forkjoin.zip jmm(1...

    disruptor.zip

    14、深入理解井发可见性、有序性、原子性与JMM内存模型 (1).pdf 15、CPU缓存架构详解&高性能内存队列Disruptor 实战 (1).pdf 16、常用并发设计模式精讲 (1).pdf designpattern.zip disruptor.zip forkjoin.zip jmm(1...

    jmm(1).zip

    14、深入理解井发可见性、有序性、原子性与JMM内存模型 (1).pdf 15、CPU缓存架构详解&高性能内存队列Disruptor 实战 (1).pdf 16、常用并发设计模式精讲 (1).pdf designpattern.zip disruptor.zip forkjoin.zip jmm(1...

    Java线程池文档

    [1]中博主自己通过ThreadGroup实现一个线程池(挺方便理解的),使用的是jdk1.4版本,Jdk1.5版本以上提供了现成的线程池。 [2]中介绍了java.util.concurrent.Executors类的API。 [3]中介绍了Java中线程池的类体系...

    【2018最新最详细】并发多线程教程

    21.线程池ThreadPoolExecutor实现原理 22.线程池之ScheduledThreadPoolExecutor 23.FutureTask基本操作总结 24.Java中atomic包中的原子操作类总结 25.大白话说java并发工具类-CountDownLatch,CyclicBarrier 26....

    PyQt5多线程防卡死和多窗口用法的实现

    心得:写着写着找到了自己的感觉,还是需要大量的代码和项目来加深对代码的理解 一、PyQt5多线程防卡死 在界面中,通常用会有一些按钮,点击后触发事件,比如去下载一个文件或者做一些操作,这些操作会耗时,如果不...

    深入理解高并发编程-核心技术原理

    (2) 深度解析ThreadPoolExecutor类源码 (3) 从源码角度分析创建线程池究竟有哪些方式 2、基础案例篇 (1) 导致并发编程频繁出问题的“幕后黑手” (2)工作了3年的程序员小菜面试高并发岗位被吊打虐哭 (3)如何解决可见...

    深入理解Java编程线程池的实现原理

    主要介绍了深入理解Java编程线程池的实现原理,涉及ThreadPoolExecutor类,线程池实现原理及示例等相关内容,具有一定参考价值,需要的朋友可以了解下。

Global site tag (gtag.js) - Google Analytics