zoukankan      html  css  js  c++  java
  • 线程池之ThreadPoolExecutor

    线程池参数:

      • corePoolSize:线程池核心线程个数
      • workQueue:用于保存等待执行的任务的阻塞队列。
        比如基于数组的有界ArrayBlockingQueue、,基于链表的无界LinkedBlockingQueue,最多只有一个元素的同步队列SynchronousQueue,优先级队列PriorityBlockingQueue,具体可参考 https://www.atatech.org/articles/81568

      • maximunPoolSize:线程池最大线程数量。

      • ThreadFactory:创建线程的工厂
      • RejectedExecutionHandler:饱和策略,当队列满了并且线程个数达到maximunPoolSize后采取的策略,比如AbortPolicy(抛出异常),CallerRunsPolicy(使用调用者所在线程来运行任务),DiscardOldestPolicy(调用poll丢弃一个任务,执行当前任务),DiscardPolicy(默默丢弃,不抛出异常)
      • keeyAliveTime:存活时间。如果当前线程池中的线程数量比核心线程数量要多,并且是闲置状态的话,这些闲置的线程能存活的最大时间
      • TimeUnit,存活时间的时间单位
            ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(
                    1,
                    2,
                    10L,
                    TimeUnit.SECONDS,
                    new LinkedBlockingQueue<>(1),
                    new ThreadPoolExecutor.DiscardPolicy()
            )
  • 相关阅读:
    List中的get(i)
    报空指针异常
    json数据请求
    springmvc中的字典表
    json的解析
    httpClient返回的数据类型,怎么弄
    java中webService
    红外遥控协议(NEC)
    很奇怪的GPIO地址
    emacs命令备忘
  • 原文地址:https://www.cnblogs.com/heapStark/p/8329854.html
Copyright © 2011-2022 走看看