takidoso
Erfahrenes Mitglied
Hallo und Halli,
Ich habe im "Java ist auch eine Insel" etwas über die in Java 5 neu existierenden Schnittstellen gelesen.
Was mich nun interessiert ist einerseits die Möglichkeit mit dem Executors Thread-Pools zu verwenden, andererseits soll mein "aufrufender Thread", der weitere Threads einen solchen Thread-Pool aufruft dann warten bis alle fertig sind.
Dazu wird offenbar die Routine join() aus den jeweiligen Threads verwendet.
Meine Frage nun: kann man diese join Routine tatsächlich verwenden wenn die Threads über den Executors-Thread-Pool angestoßen werden?
Wie komme ich an diese ran?
Ich hatte mir gedacht, dass man einen fixen Pool vielleicht verwenden kann um die Anzahl von pallellaufenden Prozessen begrenzen zu können um verhindern zu können, dass die Performance des Rechners potenziell in die Knie geht, schließlich liefe au ihm noch anderer Kram der ncht behindert werden sollte.
Kann mir da jemand einen Tip geben, ob mein Vorhaben mittels Executors.newFixedThreadPool(int) und Thread.join() gelingen könnte, und wie es prinzipiell aufgebaut sein müsste?
Es gibt zwar auch invokeAll und ein invokeAny bei ExecutorService, aber irgendwie verstehe ich das dort so, dass es passieren kann, dass nicht alle Trheads freiwillig enden würden, oder verstehe ich da was falsch?
mit bestem Dank im Voraus
Takidoso
Ich habe im "Java ist auch eine Insel" etwas über die in Java 5 neu existierenden Schnittstellen gelesen.
Was mich nun interessiert ist einerseits die Möglichkeit mit dem Executors Thread-Pools zu verwenden, andererseits soll mein "aufrufender Thread", der weitere Threads einen solchen Thread-Pool aufruft dann warten bis alle fertig sind.
Dazu wird offenbar die Routine join() aus den jeweiligen Threads verwendet.
Meine Frage nun: kann man diese join Routine tatsächlich verwenden wenn die Threads über den Executors-Thread-Pool angestoßen werden?
Wie komme ich an diese ran?
Ich hatte mir gedacht, dass man einen fixen Pool vielleicht verwenden kann um die Anzahl von pallellaufenden Prozessen begrenzen zu können um verhindern zu können, dass die Performance des Rechners potenziell in die Knie geht, schließlich liefe au ihm noch anderer Kram der ncht behindert werden sollte.
Kann mir da jemand einen Tip geben, ob mein Vorhaben mittels Executors.newFixedThreadPool(int) und Thread.join() gelingen könnte, und wie es prinzipiell aufgebaut sein müsste?
Es gibt zwar auch invokeAll und ein invokeAny bei ExecutorService, aber irgendwie verstehe ich das dort so, dass es passieren kann, dass nicht alle Trheads freiwillig enden würden, oder verstehe ich da was falsch?
mit bestem Dank im Voraus
Takidoso