Qual è la differenza tra-Impostazione dimensione ideale del pool di thread
newSingleThreadExecutor vs newFixedThreadPool(20)
in termini di sistema operativo e il punto di vista della programmazione.
Ogni volta che eseguo il mio programma utilizzando newSingleThreadExecutor
il mio programma funziona molto bene e la latenza end-to-end (95 ° percentile) arriva intorno a 5ms
.
Ma appena comincio correre il mio programma using-
newFixedThreadPool(20)
miei programmi degrada le prestazioni e mi metto a vedere un capo all'altro la latenza come 37ms
.
Quindi ora sto cercando di capire dal punto di vista dell'architettura cosa significa qui il numero di thread? E come decidere qual è il numero ottimale di discussioni che dovrei scegliere?
E se sto usando più numero di thread, allora cosa succederà?
Se qualcuno mi può spiegare queste semplici cose in un linguaggio laico, questo mi sarà molto utile. Grazie per l'aiuto.
mio config macchina spettrofotometria sto facendo funzionare il mio programma da Linux Machine
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:
Non sei soddisfatto della risposta qui: http: //stackoverflow.com/questions/16125626/performance-issues-with-newfixedthreadpool-vs-newsinglethreadexecutor? – NINCOMPOOP
Volevo capire di più in dettaglio. Quella domanda che ho postato riguardava più la programmazione e la ricerca del collo di bottiglia, ma Gray ha suggerito che potrebbe essere un problema con la dimensione dei thread. Quindi ho pensato di pubblicare un'altra domanda, ma questa volta più specifica per il punto di vista dell'architettura. – ferhan