Hallo,
ich habe eine Aufgabe bezüglich Thread und frage hier, ob meine geplante Vorgehensweise sinnvoll ist oder nicht. (Threads sind ja nicht ganz so einfach zu handeln.)
Wir haben die Operationen A1, A2, A3, B1, B2, B3, C1, C2 und C3. Sie machen nichts besonderes außer eine gewisse Zeit warten. Diese gilt es zu parallelisieren.
Nun zur Aufgabe:
Löse diese Aufgabe mit dem Java-Idiom „Bedingtes Warten“, das heißt mit wait und notify.
1. Die drei Operationen A1, A2, A3 laufen sequentiell (nacheinander) ab, ebenso die drei Operationen B1, B2, B3 und die drei Operationen C1, C2, C3.
2. C2 startet erst, nachdem alle drei Operationen A1, B1 und C1 beendet sind.
3. C3 startet, sobald zwei der drei Operationen A2, B2 und C2 beendet sind.
Meine geplante Vorgehensweise:
A1, B1, C1 laufen lassen.
A2, B2, C2 in einen Thread packen und mit wait blocken. Das selbe mit A3, B3, C3.
Nachdem A1, B1, C1 durch sind dann den ersten Thread mit notify wecken und dann den zweiten.
Klingt doch sehr sequentiell, aber meine einzige Idee, die Bedingungen zu erfüllen.
Vorallem macht mir die dritte Bedingung Probleme.
Ich hoffe auf Rückmeldung und Verbesserungstipps.
thx
mfg werdas34
ich habe eine Aufgabe bezüglich Thread und frage hier, ob meine geplante Vorgehensweise sinnvoll ist oder nicht. (Threads sind ja nicht ganz so einfach zu handeln.)
Wir haben die Operationen A1, A2, A3, B1, B2, B3, C1, C2 und C3. Sie machen nichts besonderes außer eine gewisse Zeit warten. Diese gilt es zu parallelisieren.
Nun zur Aufgabe:
Löse diese Aufgabe mit dem Java-Idiom „Bedingtes Warten“, das heißt mit wait und notify.
1. Die drei Operationen A1, A2, A3 laufen sequentiell (nacheinander) ab, ebenso die drei Operationen B1, B2, B3 und die drei Operationen C1, C2, C3.
2. C2 startet erst, nachdem alle drei Operationen A1, B1 und C1 beendet sind.
3. C3 startet, sobald zwei der drei Operationen A2, B2 und C2 beendet sind.
Meine geplante Vorgehensweise:
A1, B1, C1 laufen lassen.
A2, B2, C2 in einen Thread packen und mit wait blocken. Das selbe mit A3, B3, C3.
Nachdem A1, B1, C1 durch sind dann den ersten Thread mit notify wecken und dann den zweiten.
Klingt doch sehr sequentiell, aber meine einzige Idee, die Bedingungen zu erfüllen.
Vorallem macht mir die dritte Bedingung Probleme.
Ich hoffe auf Rückmeldung und Verbesserungstipps.
thx
mfg werdas34