Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Frage zu TMultiReadExclusiveWriteSynchronizer (Threads)??? (https://www.delphipraxis.net/46350-frage-zu-tmultireadexclusivewritesynchronizer-threads.html)

romber 23. Mai 2005 14:35


Frage zu TMultiReadExclusiveWriteSynchronizer (Threads)???
 
Hallo!

Vier Threads werden von meiner Anwendung abgespaltet. Eins haben diese Threads gemainsam: die greifen alle auf eine globale String-Variable zu. Zwei Threads ändern ab und zu den Wert dieser String-Variable, andere zwei lesen lesen ledeglich den Wert. Damit es beim Schreiben keine Kollisionen entstehen, habe ich den Schreibvorang mit einem TMultiReadExclusiveWriteSynchronizer geschützt. Ich könnte natürlich eine TCriticalSection verwenden, aber die durch CS geschützen Berreich ist für andere Threads auch zum Lesen unerreichbar (wenn ich mich nicht irre).

Meine Frage: muss in jedesmal, wenn ich den Wert der Variable ablesen möchte BeginRead und EndRead verwenden oder geht auch ohne?

marabu 23. Mai 2005 15:06

Re: Frage zu TMultiReadExclusiveWriteSynchronizer (Threads)?
 
Zitat:

Zitat von Borland
Jeder Zugriff auf den geschützten Speicher muss in Aufrufe der Methoden BeginRead und EndRead bzw. BeginWrite und EndWrite eingeschlossen werden. Andernfalls kann es zu Konflikten zwischen den einzelnen Threads kommen.

Zitat:

Zitat von Borland
Jeder Thread, der aus diesem Speicher lesen will, muss die Methode BeginRead aufrufen. BeginRead stellt sicher, dass kein anderer Thread gerade in diesen Speicher schreibt.

Grüße vom marabu


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:03 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz