美文网首页
Java线程池

Java线程池

作者: 抄无止境 | 来源:发表于2019-11-11 09:53 被阅读0次

    Java并发编程:线程池的使用

    1.使用线程池的优点?
    1.降低资源消耗:重复利用线程池中的线程节省线程创建和销毁带来的消耗;
    2.提高性能:当任务需求时,可以不用创建线程直接执行,主要是直接从线程池中取出线程去执行;
    3.提高线程的可管理性:线程是稀缺资源,而且也是任务中不可少的资源,如果频繁的且无限制的创建会消耗系统资源,降低系统稳定性导致系统崩溃,内存溢出等等问题

    2.线程池的个数怎么定?
    根据时CPU密集型还是IO密集型来决定
    CPU密集型:CPU个数+1
    IO密集型:2*CPU个数+1
    在这篇如何合理地估算线程池大小?文章中发现了一个估算合理值的公式
    最佳线程数目 = ((线程等待时间+线程CPU时间)/线程CPU时间 )* CPU数目

    如何合理设置线程池大小
    3.线程池的实现原理?


    图片.png
    图片.png

    1.如果当前运行的线程小于线程池的核心线程数,那么马上创建线程完成这个任务。
    2.如果运行中的线程数大于等于线程池的核心线程数,那么将线程放进任务队列等待。
    3.如果此时任务队列已满,且正在运行的线程数小于最大线程数,立即创建非核心线程执行这个任务。
    4.如果此时任务队列已满,且正在运行的线程数等于最大线程数,则线程池会启动饱和拒绝策略来执行。

    https://blog.csdn.net/qq_42798661/article/details/93769110

    相关文章

      网友评论

          本文标题:Java线程池

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