Hallo!
List<Klasse> liste
sei gegeben. Für jedes Objekt von Klasse in der Liste soll nun eine bestimmte Aufgabe ausgeführt werden.
Zum Beispiel Email senden, API Aufruf an einen Server, Web-Scraping nach einer URL usw.
Diese Prozesse dauern bei mir meist 30-40min, da die Liste meist lang ist und die Aufgabe auch etwas Zeit kostet.
Meine Idee um das ganze zu beschleunigen:
Ich erstelle mehrere Threads, die alle auf liste zugreifen (threadsicher dann, vlt lieber BlockingQueQue). Wenn eine Aufgabe fertig ist, wird das Objekt aus der Liste entfernt, sodass jede Aufgabe 1x erledigt wird.
Doch wie viele Threads wären hier sinnvoll? Ich habe 4 Kerne.
Wenn ich richtig informiert bin, wären also bis zu 8 Threads gleichzeitig möglich, oder?
Ich würde vermuten, es wäre am besten, 8 Threads zu nutzen, da die Gesamtprozesse wie gesagt meist 30-40min dauern. Der Zusatzaufwand durch Datenaustäusche zwischen Threads, sowie das erstellen der Threads etc. würde doch wohl kaum das durch acht teilen von 40 zunichte machen.
Was meint ihr?
Grüße
List<Klasse> liste
sei gegeben. Für jedes Objekt von Klasse in der Liste soll nun eine bestimmte Aufgabe ausgeführt werden.
Zum Beispiel Email senden, API Aufruf an einen Server, Web-Scraping nach einer URL usw.
Diese Prozesse dauern bei mir meist 30-40min, da die Liste meist lang ist und die Aufgabe auch etwas Zeit kostet.
Meine Idee um das ganze zu beschleunigen:
Ich erstelle mehrere Threads, die alle auf liste zugreifen (threadsicher dann, vlt lieber BlockingQueQue). Wenn eine Aufgabe fertig ist, wird das Objekt aus der Liste entfernt, sodass jede Aufgabe 1x erledigt wird.
Doch wie viele Threads wären hier sinnvoll? Ich habe 4 Kerne.
Wenn ich richtig informiert bin, wären also bis zu 8 Threads gleichzeitig möglich, oder?
Ich würde vermuten, es wäre am besten, 8 Threads zu nutzen, da die Gesamtprozesse wie gesagt meist 30-40min dauern. Der Zusatzaufwand durch Datenaustäusche zwischen Threads, sowie das erstellen der Threads etc. würde doch wohl kaum das durch acht teilen von 40 zunichte machen.
Was meint ihr?
Grüße