Skyo
Ensign
- Registriert
- Aug. 2006
- Beiträge
- 162
Sehr geehrte Computerbase-freunde!
Mich beschäftigt folgendes Problem. Ich habe ein Programm geschrieben, in dem mit Quicksort (rekursive Variante) ein sehr langes Array sortiert wird. Dabei entspricht jeder erneute rekursive Aufruf dem starten eines Threads.
(Dies ist natürlich ineffizient durch den riesigen Thread-overload.)
Ich möchte dennoch untersuchen, wie sich das Programm verhält, wenn ich eine maximale Threadanzahl setze. Gibt es ein Möglichkeit, dies in Java zu kontrollieren?
(außer die Stackgröße zu verringen und damit schneller Exceptions zu werfen...)
Edit: Ich hab so eben von der Klasse Threadgroups gelesen, die die aktiven Threads zählt. Also könnte man regulieren, dass keine neuen Threads eingefügt/ erstellt werden, solange die größe überschritten wird. Per sleep? :S dann hab ich aber das Problem, das ich aufpassen muss, das nicht gleichzeitig Threads hinzugefügt werden.
Bin für jeden Tipp und Link zum weiterlesen dankbar!
Mich beschäftigt folgendes Problem. Ich habe ein Programm geschrieben, in dem mit Quicksort (rekursive Variante) ein sehr langes Array sortiert wird. Dabei entspricht jeder erneute rekursive Aufruf dem starten eines Threads.
(Dies ist natürlich ineffizient durch den riesigen Thread-overload.)
Ich möchte dennoch untersuchen, wie sich das Programm verhält, wenn ich eine maximale Threadanzahl setze. Gibt es ein Möglichkeit, dies in Java zu kontrollieren?
(außer die Stackgröße zu verringen und damit schneller Exceptions zu werfen...)
Edit: Ich hab so eben von der Klasse Threadgroups gelesen, die die aktiven Threads zählt. Also könnte man regulieren, dass keine neuen Threads eingefügt/ erstellt werden, solange die größe überschritten wird. Per sleep? :S dann hab ich aber das Problem, das ich aufpassen muss, das nicht gleichzeitig Threads hinzugefügt werden.
Bin für jeden Tipp und Link zum weiterlesen dankbar!