ThreadPoolExecutor线程池详解

七个参数:

  • corePoolSize:核心池的大小,在创建了线程池后,默认情况下,线程池中并没有任何线程,而是等待有任务到来才创建线程去执行任务,当有任务来之后,就会创建一个线程去执行任务,当线程池中的线程数目达到corePoolSize后,就会把到达的任务放到缓存队列当中;
  • maximumPoolSize:线程池最大线程数;
  • keepAliveTime:表示线程没有任务执行时最多保持多久时间会终止;
  • unit:参数keepAliveTime的时间单位(DAYS、HOURS、MINUTES、SECONDS 等);
  • workQueue:阻塞队列,用来存储等待执行的任务;

    threadFactory:线程工厂,主要用来创建线程
    • ArrayBlockingQueue (有界队列)
    • LinkedBlockingQueue (无界队列)
    • SynchronousQueue
  • handler:拒绝处理任务的策略

    • AbortPolicy:丢弃任务并抛出 RejectedExecutionException 异常。(默认这种)
    • DiscardPolicy:也是丢弃任务,但是不抛出异常
    • DiscardOldestPolicy:丢弃队列最前面的任务,然后重新尝试执行任务(重复此过程)
    • CallerRunsPolicy:由调用线程处理该任务

猜你喜欢

转载自www.cnblogs.com/coder-lzh/p/9418831.html