In Java (o probabilmente nella maggior parte degli altri linguaggi che si rivolgono alla JVM) qual è un numero ragionevole di thread da utilizzare? Presumibilmente, questo sarà espresso come rapporto al numero di core / processori disponibili, è corretto?
Almeno inizialmente, sembra che il numero di thread che i core potrebbero avere il doppio sia il doppio, ma 20+ volte il numero sembra irragionevole. È probabile che il rapporto sia influenzato dal tipo e / o dall'architettura del software? Esistono tipi di software e / o situazioni in cui un numero molto più elevato di thread ha davvero senso?
[E sì, lo so che è formulato come un numero di domande separate, ma penso che siano abbastanza strettamente correlate per una singola risposta per riguardarle tutte, dal momento che sono tutte davvero su quanti thread hanno senso sotto quali circostanze.]