Hallo,
ich bin gerade an einem Programm welches Dateien konvertieren soll. Ich möchte das jetzt Multithreading machen.ich habe eine Liste mit 1-1000 Dateien diese will ich jetzt auf 1-4 Threads aufteilen. Die Threads verarbeiten dann diese Dateien. Die Frage ist jetzt wie kann ich diese Liste am besten auf x Threads aufteilen. Ein erster Entwurf sieht folgendermaßen aus:
die Klasse xThread Soll nur als Platzhalter dienen und bekommt den Start und Ende seiner Range und die Liste mit,um dann die Dateien zu konvertieren. Was Natürlich hier passiert ist, das die Aufteilung auf die Threas sehr unterschiedlich sind und zwar der letzte bekommt manchmal weniger als alle anderen.
Eine zweite Idee ist das jedem xTherad Einzelnen die Dateien hinzuzufügen und den Rest dann auf die Threads aufzuteilen und die xThreas nach der Aufteilung zu starten. Natürlich hätte jeder Thread Seine eigene Dateiliste.hat jemand von euch eine gute Idee?
Danke schonmal
LG
ich bin gerade an einem Programm welches Dateien konvertieren soll. Ich möchte das jetzt Multithreading machen.ich habe eine Liste mit 1-1000 Dateien diese will ich jetzt auf 1-4 Threads aufteilen. Die Threads verarbeiten dann diese Dateien. Die Frage ist jetzt wie kann ich diese Liste am besten auf x Threads aufteilen. Ein erster Entwurf sieht folgendermaßen aus:
Java:
private List<File> files = null;
private List<Thread> threads = null;
...
private void runThreads(int therads) {
int stepps = files.size() / therads;
if(stepps < 1){
stepps = 1;
}
for (int start = 0; start < files.size(); start = start + stepps) {
int end = stepps + start;
if (start + stepps >= files.size()) {
end = files.size();
}
xThread t = new xThread(start, end,files);
t.start();
threads.add(t);
}
}
Eine zweite Idee ist das jedem xTherad Einzelnen die Dateien hinzuzufügen und den Rest dann auf die Threads aufzuteilen und die xThreas nach der Aufteilung zu starten. Natürlich hätte jeder Thread Seine eigene Dateiliste.hat jemand von euch eine gute Idee?
Danke schonmal
LG