Transaktionen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Benutzeravatar
veers
User
Beiträge: 1219
Registriert: Mittwoch 28. Februar 2007, 20:01
Wohnort: Zürich (CH)
Kontaktdaten:

Der Titel mag verwirrend sein ich suche jedoch eine Spezielle Art von Lock, den Namen habe ich leider vergessen und die Dokumentation dazu kann ich auch nicht finden.

Das Problem ist folgendes, ich habe einen geteilten Datensatz, auf diesen kann sowohl lesend als auch schreibend Zugegriffen werden.

Es dürfen mehrere Threads gleichzeitig lesen. Jedoch nur ein einziger darf schreiben, und auch das nur, wenn kein anderer am lesen ist.

Ich stell mir das ganze so vor:
aquireRead():
wartet bis want_write false ist
inkrementiert readers
releaseRead():
dekrementiert readers
aquireWrite():
wartet setzt want_write und wartet bis readers 0 ist

gibt es so etwas bereits oder muss ich mir das nun ernsthaft selber schreiben?

PS: Ja ich weis das Threads böse sind aber es geht nicht anders.
BlackJack

Lesestoff: http://de.wikipedia.org/wiki/Sperrverfahren

Und ja, Du wirst wohl so ein RX-Lock selber basteln müssen.
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

veers hat geschrieben:PS: Ja ich weis das Threads böse sind aber es geht nicht anders.
Seit wann sind Threads denn böse? Es gibt kaum noch ernsthafte Anwendungen, die ohne Threads auskommen.
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

Meinst du mutex?
Benutzeravatar
veers
User
Beiträge: 1219
Registriert: Mittwoch 28. Februar 2007, 20:01
Wohnort: Zürich (CH)
Kontaktdaten:

Y0Gi hat geschrieben:Meinst du mutex?
Ein Mutex ist soweit ich weis ein einfaches Lock für eine Sektion. Irre ich mich da?

BlackJack, danke :)

EyDu, Naja eigentlich sind ja die Threads selber nicht böse. Aber man kann sich damit sehr leicht ins Bein schiessen. ;)
querdenker
User
Beiträge: 424
Registriert: Montag 28. Juli 2003, 16:19
Wohnort: /dev/reality

veers hat geschrieben:...Aber man kann sich damit sehr leicht ins Bein schiessen. ;)
Man sollte halt gut zielen, bevor man abdrückt :wink:

syl, querdenker
Antworten