`

线程数

 
阅读更多

      增加线程数可以提高应用的处理能力,但线程数过多,CPU频繁切换线程会影响性能。 

 

       最好的状态是一直使CPU一直保执忙碌状态,如果主机上有两颗四核CPU,那么至少需要8条线程,才能充分利用CPU,如果线程中有阻塞等待,就需要更多的线程供CPU调度执行,否则CPU闲置,如果线程执行相同的任务,阻塞时间与执行时间相等,那么就需要8*2=16条线程。即(阻塞时间/线程执行时间+1)*cpu核心数。

      

     实际中线程执行的任务类型不同,阻塞时间也不相同,不好计算出线程数。 可以通过不同线程数下做压力测试来确认最佳线程数。 

 

  Runtime.getRuntime().availableProcessors() 可以获取可用的CPU核心数。

 

 一项工作任务划分成多个子任务,由多个线程去执行,可以提高处理速度。

子任务的数量应多于线程数,细粒度的。这样执行快(小任务)的线程完成后,可以有待处理任务操作,不至于空等其它长任务线程执行完。

 

 对于需要持续处理的批量工作任务:

       可以每一个工作任务为由一条线程执行,如果工作任务中有阻塞等待,可以扩大线程数,提高并行处理能力,即同一时刻可以处理更多的任务。每一个工作任务都由单线程完成,单任务的完成时间不理想。

       如果将每一个工作任务拆分成多个子任务,即一个工作任务会占用多条线程,缩短单任务的完成时间,但会减少并行任务处理能力,而且可能需要处理多线程执行结果的合并和保证同一任务的子任务并行或相对并行。

       如果任务中有不必立即处理的或可异步的,可以交给其它线程或定时任务处理,当前线程返回,减少任务执行时间。

 

 

 

分享到:
评论

相关推荐

    weblogic server线程数控制

    Weblogic Server 线程数控制 Weblogic Server 的线程数控制是指在 Weblogic Server 中控制和管理线程数的机制,以确保服务器的性能和稳定性。在本文中,我们将详细介绍 Weblogic Server 线程数控制的概念、解决方案...

    centos查看系统cpu个数、核心数、线程数

    本文将详细介绍如何在CentOS系统中查询CPU的相关信息,包括物理CPU的数量、核心数以及线程数等。 #### 1. 查看物理CPU个数 - **命令**: `grep 'physical id' /proc/cpuinfo | sort -u | wc -l` 该命令通过`grep`...

    Nachos设置线程id和限制线程数

    同时,为了限制线程数,系统可能有一个最大线程数的常量,当达到这个数量时,创建新线程的请求会被拒绝。 ```cpp // 在Nachos的全局变量中定义最大线程数 const int MAX_THREADS = 100; // 在Thread类的实现中 int...

    WAS性能调优对jvm、线程数、ORB大小的配置

    合理设定最大线程数(-XX:MaxThreads)和最小线程数(-XX:InitialThreadCount),可以确保系统资源的高效利用。 2. **请求队列长度**:当线程池满时,新的请求会被放入队列等待。设置适当的队列长度可以防止拒绝服务。 ...

    Jmeter插件:响应时间TPS线程数

    在本文中,我们将深入探讨JMeter插件,特别是关于“响应时间”、“TPS(每秒事务数)”以及“线程数”的主题。这些插件能够帮助我们更好地理解和优化我们的系统性能。 首先,让我们了解一下JMeter插件管理器(jmeter-...

    Nachos实现id、限制线程数和按优先级调度算法 源码.rar

    在Nachos的`thread.cc`和`scheduler.cc`中,可能会包含检查当前线程数是否超过系统设定阈值的逻辑,如果超过,则不允许新的线程创建。这种机制可以避免无节制的线程创建导致的系统崩溃。 然后,优先级调度算法是...

    针对WAS6.1,对线程数、jvm,日志以及数据库连接进行性能调优

    在本文中,我们将讨论针对 WAS 6.1 的性能调优策略,涉及到线程数、JVM、日志和数据库连接等方面的优化。 一、线程数优化 在 WAS 6.1 中,线程数的设置对性能的影响非常大。我们可以通过设置 Web Container 的最大...

    完美获取 CPU 的 NUMA节点数、CPU插槽个数 、 核心数 、 逻辑处理器数(线程数)、名字、制造商、指令集、主频、等等

    本篇文章将深入探讨如何完美获取 CPU 的 NUMA 节点数、CPU 插槽个数、核心数、逻辑处理器数(线程数)、名字、制造商、指令集以及主频等关键信息。 首先,让我们理解这些概念: 1. **NUMA节点数**:NUMA(Non-...

    修改tcpIP线程数小程序

    修改tcpIP线程数修改tcpIP线程数

    进程所占物理内存、句柄数、线程数、GDI数监控,数据保存txt

    程序主要功能是:输入进程pid,对该pid进程进行所占物理内存、句柄数、线程数、GDI数等增长情况进行监控,并将数据保存txt文件,便于事后分析,主要应用与开发过程中监控内存泄漏等

    python实现线程池并可自动拓展和减小线程数(csdn)————程序.pdf

    在`__init__`方法中,初始化线程池参数,包括默认的线程数`thread_num`、夜间线程数`night_thread_num`、夜间模式切换时间`night_mode_hour`、日间模式切换时间`day_mode_hour`、延迟执行时间`delay`以及可选的指定...

    linux进程的最大线程数 及最大进程数.zip

    linux进程的最大线程数 及最大进程数.zip

    C#多线程运行示例/可设置任意个线程数/提供vs2010工程源码

    C#多线程运行示例,在此基础上可扩展实现多线程运行软件。线程数可以任意设置,提供 Visual Studio 2010 创建的工程源码。拍前请确认电脑上已经安装Microsoft Visual Studio 2010。

    获取本机CPU支持的最大线程数

    例如,在服务器环境中,管理员需要确保应用程序的线程数不超过CPU的最大线程数,以免造成资源浪费或系统瓶颈。同样,开发者在编写多线程程序时,需要根据CPU的线程数来合理调度线程,以充分利用计算资源。 总之,...

    SP2 线程数补丁

    标题中的“SP2 线程数补丁”指的是针对某个软件或操作系统的Service Pack 2(SP2)的一个更新,这个更新主要关注的是优化和调整系统处理线程的能力。线程是操作系统中的基本执行单元,它允许程序同时执行多个任务,...

    Python实现可设置持续运行时间、线程数及时间间隔的多线程异步post请求功能

    它接受三个参数:`threadNum`(线程数)、`internTime`(请求间隔)和`duration`(持续运行时间)。`run`函数首先创建一个线程数组,然后根据`threadNum`创建相应数量的线程,每个线程执行`postRequest`函数。线程被...

    vivado永久设置线程数.txt

    一次设置即可永久设置编译线程,加快编译速度,一次设置,永久可用。

    多线程下mysql连接数过多解决demo

    例如,可以使用Java的ExecutorService来管理线程,通过设置核心线程数和最大线程数来控制并发级别。 6. **查询优化**: 减少不必要的数据库查询,提高查询效率。使用索引、避免全表扫描、避免在WHERE子句中使用...

    Linux 下多线程数字排序

    父进程创建三个子线程,第一个子线程对数组的前半部分进行选择排序,第二个子进程对数组的后半部分进行选择排序,第三个子线程对两个已经排序好的数组部分进行归并排序,最后当所有子线程结束之后,父进程输出排序好...

    线程数究竟设多少合理1

    工作线程数是服务器性能优化的关键参数之一,其设置直接影响着系统的并发能力和服务响应速度。在探讨线程数设置的合理性之前,我们需要先理解一些基本概念和常见的服务线程模型。 1. **线程数与CPU核心关系**: - ...

Global site tag (gtag.js) - Google Analytics