美文网首页
线程池核心参数及其使用流程

线程池核心参数及其使用流程

作者: Java_xiaoman | 来源:发表于2021-08-05 22:49 被阅读0次

    1.如果此时线程数小于核心线程数,那么就会新起一个线程来执行当前的任务。
    2.如果此时线程数大于核心线程数,那么就会将任务塞入阻塞队列中,等待被执行。
    3.如果阻塞队列满了,并且此时线程数小于最大线程数,那么会创建新线程来执行当前任务。
    4.如果阻塞队列满了,并且此时线程数大于最大线程数,那么会采取拒绝策略。
    以上就是任务提交给线程池后各种状况汇总,一个很容易出现理解错误的地方就是当线程数达到核心数的时候,任务是先入队,而不是先创建最大线程数。

    从上述可知,线程池里的线程不是一开始就直接拉满的,是根据任务量开始慢慢增多的,这就算一种懒加载,到用的时候再创建线程,节省资源。
    此时线程数小于核心线程数,并且线程都处于空闲状态,现提交一个任务,是新起一个线程还是给之前创建的线程?
    此时线程池会新起一个线程来执行这个新任务,不管老线程是否空闲。
    你是如何理解核心线程的?
    从上一个问题可以看出,线程池虽说默认是懒创建线程,但是它实际是想要快速拥有核心线程数的线程。核心线程指的是线程池承载日常任务的中坚力量,也就是说本质上线程池是需要这么些数量的线程来处理任务的,所以在懒中又急着创建它。

    相关文章

      网友评论

          本文标题:线程池核心参数及其使用流程

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