连接池,线程池 概念

数据库连接池    参数介绍:
    name:表示你的连接池的名称也就是你要访问连接池的地址
    auth:是连接池管理权属性,Container表示容器管理
    type:是对象的类型
    driverClassName:是数据库驱动的名称
    url:是数据库的地址
    username:是登陆数据库的用户名
    password:是登陆数据库的密码

    maxIdle,最大空闲数,数据库连接的最大空闲时间。超过空闲时间,数据库连接将被标记为不可用,
    然后被释放。设为0表示无限制。
    MaxActive,连接池的最大数据库连接数。设为0表示无限制。
    maxWait ,最大建立连接等待时间。如果超过此时间将接到异常。设为-1表示无限制。

    *maxActive:最大连接数据库连接数,设 0 为没有限制
    *maxIdle:最大等待连接中的数量,设 0 为没有限制
    *maxWait:最大等待毫秒数, 单位为 ms, 超过时间会出错误信息
    

线程池
ThreadPoolExecutor    重要参数
    corePoolSize:核心线程数
        核心线程会一直存活,即使没有任务需要执行
        当线程数小于核心线程数时,即使有线程空闲,线程池也会优先创建新线程处理
        设置allowCoreThreadTimeout=true(默认false)时,核心线程会超时关闭
    queueCapacity:任务队列容量(阻塞队列)
        当核心线程数达到最大时,新任务会放在队列中排队等待执行
    maxPoolSize:最大线程数
        当线程数>=corePoolSize,且任务队列已满时。线程池会创建新线程来处理任务
        当线程数=maxPoolSize,且任务队列已满时,线程池会拒绝处理任务而抛出异常

ThreadPoolExecutor执行顺序:
    1.当线程数小于核心线程数时,创建线程。
    2.当线程数大于等于核心线程数,且任务队列未满时,将任务放入任务队列。
    3.当线程数大于等于核心线程数,且任务队列已满
        3.1若线程数小于最大线程数,创建线程
        3.2若线程数等于最大线程数,抛出异常,拒绝任务
4种拒绝策略
    ThreadPoolExecutor.AbortPolicy:丢弃任务并抛出RejectedExecutionException异常。  
    ThreadPoolExecutor.DiscardPolicy:也是丢弃任务,但是不抛出异常。 
    ThreadPoolExecutor.DiscardOldestPolicy:丢弃队列最前面的任务,然后重新尝试执行任务(重复此过程) 
    ThreadPoolExecutor.CallerRunsPolicy:由调用线程处理该任务

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值