• Java中的线程池的线程数量如何确定?


    随着计算技术的不断发展,3纳米制程芯片已进入试产阶段,摩尔定律在现有工艺下逐渐面临巨大的物理瓶颈,通过多核处理器技术来提升服务器的性能成为提升算力的主要方向。

    在服务器领域,基于java构建的后端服务器占据着领先地位,因此,掌握java并发编程技术,充分利用CPU的并发处理能力是一个开发人员必修的基本功,本文结合线程池源码和实践,简要介绍了线程池和线程变量的使用。

    线程池概述

    什么是线程池

    线程池是一种“池化”的线程使用模式,通过创建一定数量的线程,让这些线程处于就绪状态来提高系统响应速度,在线程使用完成后归还到线程池来达到重复利用的目标,从而降低系统资源的消耗。

    为什么要使用线程池

    总体来说,线程池有如下的优势:

    1. 降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。
    2. 提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。
    3. 提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调优和监控。

    线程池的使用

    线程池创建&核心参数设置

    在java中,线程池的实现类是ThreadPoolExecutor,构造函数如下:

    1. public ThreadPoolExecutor(int corePoolSize,
    2. int maximumPoolSize,
    3. long keepAliveTime,
    4. TimeUnit timeUnit,
    5. BlockingQueue workQueue,
    6. ThreadFactory threadFactory,
    7. RejectedExecutionHandler handler)

    可以通过 new ThreadPoolExecutor(corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue, threadFactory,handler)来创建一个线程池。

    • corePoolSize参数

    在构造函数中,corePoolSize为线程池核心线程数。默认情况下,核心线程会一直存活,但是当将allowCoreThreadTimeout设置为true时,核心线程超时也会回收。

    • maximumPoolSize参数

    在构造函

  • 相关阅读:
    《痞子衡嵌入式半月刊》 第 97 期
    this 指向问题
    【使用 BERT 的问答系统】第 1 章 : 自然语言处理简介
    Java8新特性
    政安晨:【Keras机器学习示例演绎】(十六)—— 用于图像分类的混合增强
    项目管理之六大目标及成功方程式
    vim 多行注释
    NLP主要研究哪些方向?
    乐趣国学—品读“富润屋,德润身。”中的智慧
    spring的学习【3】
  • 原文地址:https://blog.csdn.net/m0_67698950/article/details/126633126