美文网首页
java线程池的实现机制

java线程池的实现机制

作者: darendu | 来源:发表于2018-12-06 00:52 被阅读0次

原文链接:http://www.studyshare.cn/blog/details/1133/1

一、java中提供的线程在开发中可能并不会直接使用,多线程编程场景使用java的线程池会更好,因为可以很好的管理线程,并且线程池内部的机制节省了我们自己创建和销毁线程的时间,效率上来讲更高。那么线程池内部实现的机制是怎样的呢?

首先看一张图:

线程池内部实现机制

更多深度技术文章,在这里。 java开发工具下载地址及安装教程大全,点这里

先解释每个元素的含义,然后整体总结机制

  1、BlockingQueue<Runnable>

        这是java jdk提供的阻塞队列,在这里是用来存放用户提交的任务

  2、corePool

        这是线程池中的核心线程,一个线程池中,首先使用这些核心线程去处理用户递交过来的任务

  3、maximumPool

        这是线程池中允许创建的最大的线程数

  4、RejectedExecutionHandler

        这是线程池提供的饱和策略,提供了四种策略,含义分别如下

        AbortPolicy:直接抛出异常,默认使用

        CallerRunsPolicy:使用调用者的线程执行任务

        DiscardPolicy:直接丢弃任务

        DiscardOldPolicy:丢弃最老的任务

    5、execute()

        该方法是线程池提供给外部调用的方法,使用者可通过调用该方法实现将任务交给线程池去执行

    搞明白以上内容的所有含义,下面分四步整体说明线程池的执行流程和机制:

    1、当外部的任务数提交到线程池中,任务数小于线程池的核心线程数的时候,就创建核心线程去执行任务

    2、当任务数大于等于核心线程数的时候,将任务存入阻塞队列

    3、当阻塞队列也已经存满了,则去创建新的线程来执行任务,但创建的新的线程数量不超过线程池的最大线程数

    4、如果任务队列满了,线程池的线程也达到了最大线程数,此时还有新的任务递交到线程池怎么办?

    5、使用饱和策略,具体使用哪种策略根据任务来确定,线程池默认是直接抛出异常

    以上就是线程池内部的具体实现机制。

更多深度技术文章,在这里。 java开发工具下载地址及安装教程大全,点这里

相关文章

  • java并发编程锁机制

    之前系列文章都在叙述java线程池的设计以及实现机制,没有涉及java并发编程的锁机制,这是因为锁机制与线程池是...

  • java基础-多线程

    java线程池的实现 ThreadPoolExecutor java线程池几个参数 corePoolSize当线程...

  • java 实现自定义线程池

    java 实现自定义线程池 定义线程池接口 线程池接口的默认实现 示例摘抄于《Java并发变成的艺术》4.4.3线...

  • ThreadPoolExecutor线程池原理

    本文参考Java线程池---addWorker方法解析Java线程池ThreadPoolExecutor实现原理线...

  • java并发

    1.并发编程中的锁 并发编程中的各种锁java高并发锁的3种实现Java并发机制及锁的实现原理 2.线程池核心线程...

  • java线程池的实现机制

    原文链接:http://www.studyshare.cn/blog/details/1133/1 一、java中...

  • 线程以及java线程池实现分享

    线程以及java线程池实现分享 线程简介 JDK线程池的工作原理 JDK线程池的实现细节 1.线程简介-由来 1....

  • 线程池的原理

    参考 深入Java源码理解线程池原理 线程池是对CPU利用的优化手段 线程池使用池化技术实现,替他的实现还有连接池...

  • ExecutorService

    ExecutorService扩展和实现Executor。 java 线程池的5种状态 RUNNING 线程池...

  • 线程池工作机制与原理

    书接上文, Java线程池 。接下来记录一下线程池的工作机制和原理 线程池的两个核心队列: 线程等待池,即线程队列...

网友评论

      本文标题:java线程池的实现机制

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