这个问题已经在这里有一个答案:
- 用的newFixedThreadPool性能问题VS newSingleThreadExecutor 1个回答
有什么差别─
newSingleThreadExecutor vs newFixedThreadPool(20)
在操作系统和观点编程角度而言。
每当我使用的运行我的程序newSingleThreadExecutor
我的程序工作得很好,端到端的延迟(第95百分位)恶有恶报5ms
。
但只要我开始运行我的程序using-
newFixedThreadPool(20)
我的程序性能下降,我开始看到端到端延迟为37ms
。
所以,现在我想但从架构上看是什么的线程数是指在这里明白了吗? 而如何决定什么是最佳线程数,我应该选择?
如果我使用多线程的数量又会怎么样呢?
如果任何人都可以解释我在深入浅出这些简单的事情,那么这将是对我非常有用的。 谢谢您的帮助。
规格 - 我从Linux的机器上运行我的程序我的机器配置
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 45
model name : Intel(R) Xeon(R) CPU E5-2670 0 @ 2.60GHz
stepping : 7
cpu MHz : 2599.999
cache size : 20480 KB
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good xtopology tsc_reliable nonstop_tsc aperfmperf pni pclmulqdq ssse3 cx16 sse4_1 sse4_2 popcnt aes hypervisor lahf_lm arat pln pts
bogomips : 5199.99
clflush size : 64
cache_alignment : 64
address sizes : 40 bits physical, 48 bits virtual
power management:
processor : 1
vendor_id : GenuineIntel
cpu family : 6
model : 45
model name : Intel(R) Xeon(R) CPU E5-2670 0 @ 2.60GHz
stepping : 7
cpu MHz : 2599.999
cache size : 20480 KB
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good xtopology tsc_reliable nonstop_tsc aperfmperf pni pclmulqdq ssse3 cx16 sse4_1 sse4_2 popcnt aes hypervisor lahf_lm arat pln pts
bogomips : 5199.99
clflush size : 64
cache_alignment : 64
address sizes : 40 bits physical, 48 bits virtual
power management: