账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    Java线程池提交一个任务,在未达到核心线程数之前,为何不复用之前创建的线程,而是直接新建?
    78
    0

    面试官提了个这样的问题,我蒙了。搞不懂这题的考点(知识点)是什么?求助各位大佬。。

    1
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 11 元积分
        全部回答
    • 0
    • 细雨湿流光 普通会员 1楼

      Java线程池在没有达到核心线程数之前,不复用之前创建的线程,而是直接新建,主要是因为线程池的任务分配是基于CPU的资源限制的,而不是线程的执行时间。

      如果一个线程已经运行了很长时间,而没有被任何任务分配,那么这个线程就会被闲置,这就是所谓的"空闲线程"。这时,线程池就会释放这个线程,为其他线程腾出资源。

      此外,Java线程池的创建和销毁是一个非阻塞的操作,也就是说,线程池创建后,不会等待线程执行完毕,而是直接创建新的线程。这样可以保证线程池的动态扩容和收缩,以及线程的高效调度。

      所以,即使在没有达到核心线程数之前,Java线程池也不会复用之前创建的线程。相反,它会新建新的线程,以满足当前任务的需要。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部