美文网首页
Java线程池

Java线程池

作者: bluenickle | 来源:发表于2020-05-10 00:42 被阅读0次

    1. Java线程池的种类

    • 基本: ThreadPoolExecutor
    • CachedThreadPool: 线程数量无限制,会释放空闲线程
    • FixedThreadPool: 指定工作线程最大数量,不释放工作线程
    • ScheduledThreadPool: 单线程顺序执行
    • SingleThreadExecutor:延迟或者定期执行

    2. 线程池参数设置

    • corePoolSize: 基本大小。线程池建立以后里面并没有线程,有任务到来才创建线程,当线程池中的线程数目达到corePoolSize后,就会将任务加到缓存队列里面
    • maximumPoolSize: 线程池允许创建的最大线程数。缓存队列满,并且已创建的线程数小于这个梳理,就会创建新的线程执行任务
    • keepAliveTime: 线程活动保持时间。线程池的工作线程空闲后,保持存活的时间
    • workQueue: 任务队列
      • ArrayBlockingQueue
      • LinkedBlockingQueue
      • SynchronousQueue
      • PriorityBlockingQueue
    • handle饱和策略
      • AbortPolicy: 抛出异常
      • CallerRunsPolicy: 调用者自己执行
      • DiscardOldestPolicy: 丢弃时间最早的任务
      • DiscardPolicy: 不执行

    3. 线程池状态

    • RUNNING:启动后
    • SHUTDOWN: 调用shutdown(), 没有正在关闭, 不能接收新任务, 尝试终止正在执行的任务
    • STOP:调用shutdownNow()
    • TIDYING:线程池和队列为空
    • TERMINATED: terminated()回调完成

    相关文章

      网友评论

          本文标题:Java线程池

          本文链接:https://www.haomeiwen.com/subject/ddirnhtx.html