SnooP hat gesagt.:
Wenn das Starten der Einzelthreads per rekursiver Methode im Hauptprogramm abläuft, könnte doch das join dort direkt nach dem Aufruf der Methode erfolgen - damit stellt man dann doch sicher, dass dort erst weitergemacht wird, wenn alle Ergebnisse eingesammelt wurden
ja aber das wär ja das gleiche wie singleThreaded!
joinen geht IMHO bei dem Problem nicht, weil ja am laufenden Band Threads erzeugt werden, die müsste man sich alle merken und dann am ende alle joinen (aber wozu?)
auch die neuen Sachen wie Futures und die CyclicBarrier usw. verlangen dass man vorher weiss, auf wieviele Threads man warten will
aber mal was grundsätzliches:
auf einer 1CPU Normalomaschine ist die Multithreaded Version IMMER langsamer (und verbrät auch ganz schön Speicher)
sinnvoll wär das z.B. wenn man riesige Verzeichnisse durchsuchen will und nebenbei eine Anzeige in der GUI auffüllen ("Responsiveness"), aber dazu reicht prinzipiell erstmal ein Thread
und wenn ein directory bloss 10-100 Einträge hat, dann ist so ein Thread wahrscheinlich in seiner ersten Zeitscheibe sofort fertig und der Overhead möglicherweise nicht gerechtfertigt...