Mit 500 Threads wäre schlechte Praxis, weil es unnötigen Aufwand für den Kontextwechsel zwischen Threads, nicht zu erwähnen den Initialisierungsaufwand beim Erstellen von 500 Threads.
Denken Sie daran, dass die Anzahl der Threads, die parallel ausgeführt werden können, durch die Anzahl der verfügbaren Prozessoren (d. H. Runtime.getRuntime().availableProcessors()
) begrenzt ist. Wenn Ihr Computer also über 8 Prozessoren verfügt, ist es nicht sinnvoll, mehr als 8 Worker-Threads zu erstellen.
Für die tatsächliche Ausführung der Arbeit ist dies ein Cookie Cutter Worker Queue-Szenario. Hier können Sie die Anzahl der Worker-Threads entsprechend der Anzahl der verfügbaren Prozessoren erstellen und jeden Worker-Thread Arbeitsabschnitte ausführen lassen, bis die gesamte Arbeit abgeschlossen ist (verfolgt von einem AtomicInteger
oder etwas Ähnlichem)