Java如何依据cpu核数设置合适的线程数

现状:服务器为64核,有多种类型的线程,其中一种线程的线程数目前设置为5,但是在特殊情况下(某个时间点数据突发量大时)处理能力无法满足需求。暂时的解决办法是提高设置的线程... 现状:
服务器为64核,有多种类型的线程,其中一种线程的线程数目前设置为5,但是在特殊情况下(某个时间点数据突发量大时)处理能力无法满足需求。暂时的解决办法是提高设置的线程数。
So:
1、向各位请教一下Java如何依据cpu核数设置合适的线程数。
2、多种类型的线程的线程数总和太多是否会对服务器的应用产生不好影响。
展开
 我来答
thaipine
推荐于2017-11-27 · 知道合伙人软件行家
thaipine
知道合伙人软件行家
采纳数:103 获赞数:594
毕业于郑州大学软件技术学院,专业软件技术Java,2年Java Web方面工作经验。

向TA提问 私信TA
展开全部

1:获取cpu核心数:

Runtime.getRuntime().availableProcessors();

     创建线程池:

Executors.newFixedThreadPool(nThreads);//nThreads为线程数

2:这个只要服务器内存够大,CPU核心数较多,处理数据比较强就好了,注意不要一下分配几千个线程,可 能会导致堆栈溢出的,这样程序就挂了,因为线程很费内存资源

追问
谢谢你的回答。

因为业务的需要,实际上建了可能有三四个线程池(线程数少的5个,多的16个)。而且该服务器并不只是用来做那四个线程池的逻辑,现在想评估一下64核的服务器在不影响性能的前提下可以创建多少个线程。
匿名用户
2015-05-15
展开全部
其实这线程数没有明确值,根据自己的日常业务测试吧,结合内存大小,像我以前工作的服务器ibm3650服务器设置15也没有问题的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式