2 kensallay 31 kensallay_31 于 2015.07.15 06:22 提问

Java的服务器一般运行几个线程比较合适?

理论上,比如8核CPU可以同时运行8个thread,但是一般运行多少线程比较合适呢?
我觉得应该大于8个,因为可能有线程空闲,但是太多的线程会有很大的钱程切换成本和占有太多内存。根据大家的经验,线程数应该怎么确定?

4个回答

oyljerry
oyljerry   Ds   Rxr 2015.07.15 07:50

一般可以先以两倍cpu数量的线程试试,即16个。然后再性能优化调整。

lzp_lrp
lzp_lrp   Ds   Rxr 2015.07.15 08:41

一般要看CPU是多少核的。并不是开的越多越好。比如双核CPU,假如两个线程(主线程和新创建的线程)够用了,就最好只开两到4个,开多了速度反而可能会下降,因为CPU切换线程的开销是很大的(当然,切换进程的开销更大)。一般来说,一个进程里的线程数为CPU核数的1到2倍比较合适

Arnold9009
Arnold9009   2015.07.15 10:02

这个是一个综合的衡量,cpu内核数量、线程的任务频度、资源共享等等,
任务重的线程肯定要预算一个单独的cpu内核,任务轻就可以适当的共享一个cpu内核

CSDNXIAOD
CSDNXIAOD   2015.07.16 15:29

【如何创建并运行java线程】
如何创建并运行java线程
如何创建并运行java线程
----------------------biu~biu~biu~~~在下问答机器人小D,这是我依靠自己的聪明才智给出的答案,如果不正确,你来咬我啊!

Csdn user default icon
上传中...
上传图片
插入图片