Guten Abend! Ich habe z.B. 10 Threads A und einen Thread B. Thread B wird im Abstand von 2sek jeweils angestoßen und läuft dann 1,5sek. Die Threads A laufen nichtdeterministisch irgendwann mal und brauchen wohl sowas um die 100ms, sind also eher kurz. Jetzt hab ich folgendes Problem: - Alle Threads A dürfen gleichzeitig auf die Resource R zugreifen. - Kein Thread A darf auf R zugreifen, wenn Thread B aktiv ist. - Die Threads A dürfen sich aber nicht gegenseitig blockieren, d.h. wenn Thread B nicht aktiv ist, dürfen sie nicht gebremst werden - Thread B muss warten, wenn ein Thread A die Resource R verwendet Ich glaub das wars ... Hat jemand hierzu eine Idee, wie man das lösen könnte? Danke! Viele Grüße, Fetz von Fetzenstein
Such mal nach "rw lock" bzw. "read write lock". Keine Ahnung, ob Java sowas von Hause aus hat, Implementationen in Java hab ich aber schon gesehen. Deine Threads A brauchen dann einen Read-Lock, der Thread B einen Write-Lock.
siehe hier: http://download-llnw.oracle.com/javase/1.5.0/docs/api/java/util/concurrent/locks/package-summary.html alles Nötige im Package java.util.concurrent.locks
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.