Multi-Threadding Java 7

takidoso

Erfahrenes Mitglied
Hallo und Halli,
habe da eine interessante Aufgabe bezüglich multi-threadding...
Ein Parser liest einzelne Zeilen und sagt aus ob das ganze erlaubt ist oder nicht.
die genaueren regeln seien hier nicht wichtig.
Mir geht es ausschließlich um den Multi-Threadding-Teil:
Es sollen so viele Threads genutzt werden wie die Maschine Prozessoren habe.
Gelesen wird aus einem Eingabestrom und dann werden die verschiedenen Tasks auf die Threads verteilt.
Für korrekte Syntax soll ein "True"-String und für inkorrekte Syntax ein "False" auf Standard-out ausgegeben werden.

Ich habe strategisch dazu zunächst 2 Ansätze.

1)
Jede Zeile sei ein Task und werde in einen FixedThreadPool als simples Runnable submitted
Offensichtlich, zumindest verstehe ich das jetzt so und bitte korrigiert mich wenn ich da falsch liege, müssen die Ergebnisse, ob Thread technisch erfolgreich ausgeführt werden konnte, tatsächlich abgeholt werden mit entweder "take" oder "poll", wenn ich für den Spaß einen ExecuterCompletionService
verwenden würde.
Sehe ich das richtig, dass man dieses "take" dann besser in einem extra-thread legen sollte?
Gibt es da bessere/einfachere Möglichkeiten?

2) Zeilen werden zunächst zu mehreren gebündelt und dann innerhalb eines jeweiligen Threads innerhalb einer Schleife verarbeitet. Hätte vielleicht den Vorteil, dass die Queue nicht so volllaufen würde bzw. der Overhead für den Wechsel des Runnables im jeweiligen Thread nicht so häufig auftritt.
Hätte natürlich mehr Programmieraufwand wegen des Bündelns.

Für welche Variante würdet Ihr plädieren?

Vorweihnachtliche Grüße

Takidoso
 

Neue Beiträge

Zurück