![]() |
Threads...
Hallo,
hab ein Problem mit Threads / Datenzugriff. Ich hab im Mainform ein array of Objekt welches Daten beinhaltet. Dann werden 4 Instanzen eines Ausgabethreads gestartet. Diese sollen sich Ihre Daten aus dem Array of Object holen. in jeder execute läuft eine 0..100 Schleife welche in den Array[x] guckt und ggf. dann was tut. Geht das / darf man das überhaupt so machen ? Mir sind die Hintergründe nicht ganz klar. Danke und Gruss Calli |
AW: Threads...
Solange du auf alle Daten in dem Array ausschließlich lesend zugreifst (also auch keine Methoden auf den Objekten aufrufst, die Felder des Objekts modifizieren usw.) und das Array auch derweil nicht woanders schreibend angefasst wird, kannst du ohne Absicherung in den Threads darauf zugreifen.
Wenn irgendwo Schreibzugriffe parallel passieren, müsstest du das absichern, z.B. mit einem TMultiReadExclusiveWriteSynchronizer, TMonitor, kritischen Sektionen oder ähnlichen Mechanismen. |
AW: Threads...
Ich würde aber auch lesende Zugriffe absichern. Denn sollte mal was an dem Programm geändert werden und doch schreibend zugegriffen werden, bist du jetzt schon auf der sichern Seite.
|
AW: Threads...
Das ist sehr allgemein...
ggf. würde ich eher eine Queue nehmen, die Abgearbeitet wird... Aber das kommt darauf an, was Du machen willst... ggf. ist es mit 4 Threads und einer Absicherung langsamer als mit einem Thread... Kann man nicht genau sagen.. Mavarik |
AW: Threads...
Zitat:
|
AW: Threads...
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:40 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 by Thomas Breitkreuz