![]() |
CriticalSection verwenden bei MMF Multithreading ?
ich baue gerade eine datenbank die über netzwerk daten empfangen und senden kann.
die daten liegen in daten und index files vor auf die ich mit memory mapped files zugreife wenn ich nun mehrere client threads bei meinem server habe.. und diese clients dann gleichzeitig auf das gemeinsam geteilte MMF zugreifen wollen.. muss ich da explizit die zugreifenden stellen mit Critical sections synchronisieren ? oder kann ich einfach wild drauf los schreibend&lesend auf ein und das selbe MMF mit mehreren threads drauf zugreifen ? |
Re: CriticalSection verwenden bei MMF Multithreading ?
Überleg doch mal was passiert, wenn ein Client schreibt, während ein anderer gleichzeitig liest. Ich glaube kaum, dass der lesende Client noch konsistente Daten bekommt. ;) Mit MMF's kenne ich mich nicht so aus, aber wenn sie schon von Haus aus was eingebaut haben, dass das synchronisiert, dann musst du dir natürlich keine Gedanken machen.
|
Re: CriticalSection verwenden bei MMF Multithreading ?
hehe das weis ich ja.. aber genau das ist meine frage.. synched windoof mit MMF schon multible zugriffe selbst oder muss ich es mit critical sections tun..
|
Re: CriticalSection verwenden bei MMF Multithreading ?
Da wird wohl nur Ausprobieren helfen.
Ansonsten würd ich sagen sicher ist sicher ^^. |
Re: CriticalSection verwenden bei MMF Multithreading ?
Zugriffe auf Memory-Mapped-Files kann Windows nicht synchronisieren, da sie indirekt per Speicherbereich erfolgen... keine Funktionen vorhanden, die man als atomar (unteilbar) definieren könnte...
bei Memory-Mapped-Files die von 1 Prozess verwendet werden, werden die Zugriffe am besten mit Critical-Sections serialisiert, bei mehreren Prozessen sind Mutex notwendig... |
Re: CriticalSection verwenden bei MMF Multithreading ?
alles klar :) danke für die hilfe
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:28 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz