美文网首页
线程数量设定的考虑

线程数量设定的考虑

作者: 黄褐色猫头鹰 | 来源:发表于2018-12-26 10:40 被阅读0次

我们已经知道了线程池中的最大线程数量应该被限制,才不会导致系统资源耗尽。这些系统资源包括了内存(堆栈)、打开的文件句柄、打开的TCP连接、打开的数据库连接以及其它有限的系统资源。相反的,如果线程执行的是CPU密集型任务而不是IO密集型任务,服务器的物理内核数就应该被视为是有限的资源,这样创建的线程数就不应该超过系统的内核数。

系统应创建多少线程取决于这个应用执行的任务。开发人员应使用现实的请求来对系统进行负载测试,测试不同的线程池大小配置对系统的影响。每次测试都增加线程池的大小,直到系统达到崩溃的临界点。这个方法使你可以发现线程池线程数量的上限。超过这个上限,系统的资源将耗尽。在某些情况下,可以谨慎地增加系统的资源,例如分配更多的RAM空间给JVM,或者调整操作系统使其支持同时打开更多的文件句柄。然而,在某些情况下创建的线程数量会达到我们测试出的理论上限,这非常值得我们注意。稍后还会看到这方面的内容。

相关文章

  • 线程数量设定的考虑

    我们已经知道了线程池中的最大线程数量应该被限制,才不会导致系统资源耗尽。这些系统资源包括了内存(堆栈)、打开的文件...

  • 线程池中线程数量如何设定

    一般说来,大家认为线程池的大小经验值应该这样设置:(其中N为CPU的个数) 如果是CPU密集型应用,则线程池大小设...

  • Java 线程(2)- Executor 框架

    当我们需要一定数量的线程来处理问题的时候,我们需要考虑: 操作系统对线程的数量的限制 创建、调度和终止线程的系统开...

  • springboot线程安全处理方法记录

    Semaphore并发包 semaphore是基于计数的记号量,它可以设定一个资源的总数量,基于这个总数量,多线程...

  • Go语言基础之sync.WaitGroup

    WaitGroup用于等待一组线程的结束。父线程调用Add方法来设定应等待的线程的数量,每一次执行Add都会增加线...

  • Java并发编程学习笔记

    线程池 策略 当线程数量未达到核心线程数量,直接启动一个核心线程来执行任务。 如果线程数量已达到或者超过核心线程的...

  • 线程池原理

    一,参数 1,corePoolSize:核心线程数量,线程池可以保留的活跃线程的数量。 2,maximumPool...

  • 线程池ThreadPoolTaskExecutor 配置

    参数说明:corePoolSize:线程池维护线程最小数量maxPoolSize:线程池维护线程最大数量keepA...

  • GCD控制线程数量

    1.GCD控制线程数量 2.GCD控制线程数量+线程任务结束通知处理

  • 一个例子理解java线程池 ThreadPoolExecutor

    创建一个线程池需要7个参数 corePoolSize 核心线程数量 maximumPoolSize 最大线程数量 ...

网友评论

      本文标题:线程数量设定的考虑

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