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

    1、目的

    线程复用,避免频繁的创建、销毁线程耗费资源

    2、java 线程池

    (接口)Excutor   ->  (接口)ExcutorService  - >  (抽象类)AbstractExcutorService  ->  (类)ThreadPoolExcutor

    3、关键参数

    核心线程数、最大线程数、空闲线程存活时间、任务缓存队列的选择、淘汰策略的选择

    4、任务队列类型

    SynchronousQueue 阻塞队列,没有容量,不可缓存任务,可以理解为数据交换通道;

    ArrayBlockingQueue 有界队列,缓存一定数目的任务

    LinkedBlockingQueue 无界队列,最多存放Interger.Max个任务

    5、淘汰策略

     - 抛异常

     - 直接丢弃,不抛异常

     - 丢弃最早的task,再次尝试excute

     - 采用回调线程本身去执行task

    6、Excutors实现了的几种线程池

      - 固定大小的 - LinkedBlockingQueue

      - cache类型的,线程可无限扩大 SynchronousQueue

      - 单线程(可保证执行顺序)- 对应LinkedBlockingQueue队列

      - 单线程调度(延迟执行、周期调度)- DelayedWorkQueue

      - 多线程调度线程池(延迟执行、周期调度) - DelayedWorkQueue

      -  newWorkStealingPool(最终返回ForkJoinPool对象)

  • 相关阅读:
    磁盘
    磁盘接口
    Linux help websites
    [SOJ] 1282. Computer games (KMP)
    [SOJ]1753 解码
    hdu 3473 裸的划分树
    hdu 4417 划分树
    hdu 4665 搜索
    hdu 4340 树状DP
    hdu 4005 边连通度与缩点
  • 原文地址:https://www.cnblogs.com/tengpan-cn/p/8968557.html
Copyright © 2011-2022 走看看