线程的使用、实现及原理

一:线程池的实现原理:

提交一个任务到线程池中,线程池的处理流程如下:

        1:判断线程池里的核心线程是否都在执行任务,如果不是(核心线程空闲或者还有核心线程没有被创建)则创建一个新的工作线程来执行任务。如果核心线程都在执行任务,则进入下一个流程。

        2:线程池判断工作队列是否已满,如果工作队列没有满,则将新提交的人物存储在这个工作队列里。如果工作队列满了,则进入下个流程。

       3:判断线程池里的线程是否都处于工作状态,如果没有,则创建一个新的工作线程来执行任务。如果已经满了,则交给饱和策略来处理这个任务。

二:线程池的优点:

     线程是稀缺资源,如果被无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,合理地使用线程池对线程进行统一分配、调优和监控,有以下好处:

      1:降低资源消耗;

      2:提高响应速度

      3:提高线程的可管理性。

三:线程池的创建:

 public ThreadPoolExecutor(int corePoolSize,
                               int maximumPoolSize,
                               long keepAliveTime,
                               TimeUnit unit,
                               BlockingQueue<Runnable> workQueue,
                               RejectedExecutionHandler handler) 

   corePoolSize:线程池核心线程数量

   maximumPoolSize:线程池最大线程数量

   keepAliverTime:当活跃线程数大于核心线程数时,空闲的多余线程最大存活时间

   unit:存活时间的单位i

   workQueue:存放任务的队列

   handler:超出线程范围和队列容量的任务的处理程序。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值