![]() |
AW: Zugriffe auf Objekt aus mehreren Threads - wie richrig synchronisieren?
Zitat:
Zitat:
|
AW: Zugriffe auf Objekt aus mehreren Threads - wie richrig synchronisieren?
Zitat:
In meinem Fall hat die Verarbeitung der eingehenden Daten eine höhere Priorität, als andere zweitrangige Aufgaben, die sich eventuell erst während der Verarbeitung ergeben. Für diese zweitrangige Aufgaben existieren nähmlich auch Queue-Threads, die ihre Aufgaben mit einer niedriegeren Priorität abarbeiten. |
AW: Zugriffe auf Objekt aus mehreren Threads - wie richrig synchronisieren?
Zitat:
Das wird durch "enter" und "leave" sichergestellt. Mit der ThreadList müsstest Du dich nicht mehr darum zu kümmern zugriffe auf die Liste abzusichern. Das macht die Klasse dann automatisch. Grüße Klaus |
AW: Zugriffe auf Objekt aus mehreren Threads - wie richrig synchronisieren?
A propos Zugriffe.
Muss man nur schreibende Zugriffe mit einer CriticalSection absichern oder auch lesende? |
AW: Zugriffe auf Objekt aus mehreren Threads - wie richrig synchronisieren?
Zitat:
Denn ich denke es wird krachen wenn ein Listenelemet gelesen wird und ein anderer Thread löscht im gleichen Zeitraum diese Element. Grüße Klaus |
AW: Zugriffe auf Objekt aus mehreren Threads - wie richrig synchronisieren?
Zitat:
Delphi-Quellcode:
nicht erklären können.
TMultipleReadExclusiveWriteSynchronizer
|
AW: Zugriffe auf Objekt aus mehreren Threads - wie richrig synchronisieren?
Man muss alle gleichzeitigen Zugriffe absichern, die nicht atomar sind, sobald ein Prozess ggf. etwas schreibt.
Übrigens: auch ein
Delphi-Quellcode:
oder ein
I := J
Delphi-Quellcode:
ist - auf Prozessorebene - nicht atomar.
Inc(I)
Wenn man gemeinsame Zugriffe nicht korrekt absichert, kann man von falschen Werten bis Programmabstürzen alles erhalten. |
AW: Zugriffe auf Objekt aus mehreren Threads - wie richrig synchronisieren?
Zitat:
|
AW: Zugriffe auf Objekt aus mehreren Threads - wie richrig synchronisieren?
Zitat:
Zitat:
Delphi-Quellcode:
die Priorität des jeweiligen Queue-Threads anzupassen. Es gibt aber oft geteilte Meinung, dass dies auch nicht die beste Lösung ist.
TThreadPriority
Es hat mich auch interessiert, wie ich einem TTask meine Parameter übergeben kann. Dabei bin ich auf ![]()
Delphi-Quellcode:
übergeben werden. Muss das allgemein so sein?
const
|
AW: Zugriffe auf Objekt aus mehreren Threads - wie richrig synchronisieren?
Zitat:
Wenn es wirklich eine Kopie ist, das mit dem Thread ja kein Problem mehr denn die ursprüngliche Variable wird nicht angefasst. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:12 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