mit Mutex ganze Module sperren/entsperren
Verfasst: 02.09.2014 21:07
Hi Leute,
ist es möglich ganze Module zu sperren, wenn man mit Threads arbeitet? Mein Modul ist noch in Entwicklung, soll aber nur mit LinkedLists und Speicheradressen arbeiten (also keine Gadgets oder ähnliches). Da ein Modul unter anderem viele Prozeduren und Variablen enthalten kann, möchte ich dass immer nur ein Thread auf die Prozeduren eines Moduls zugreift. Da die Prozeduren auch untereinander im Modul aufgerufen werden können, weiß ich nicht genau wo sich die Unterbringung eines Mutex anbietet.
Reicht für so etwas ein im Modul globales Mutex aus? Könnte es Probleme verursachen, wenn LockMutex() mehrfach aufgerufen wird?
...und noch so eine kleine Nebenfrage.... ist ein Mutex 100% sicher oder könnte es vorkommen, dass mehrere Threads exakt zeitgleich einen Mutex sperren wollen und somit z.B. 2 Threads eine Routine bearbeiten, die eigentlich nur eine bearbeiten darf.
Durch meine Erfahrungen mit Threads (Abstürze, Instabilitäten und Deadlocks) bin ich sehr vorsichtig geworden. Allerdings lässt er sich in meinem Fall nicht vermeiden
ist es möglich ganze Module zu sperren, wenn man mit Threads arbeitet? Mein Modul ist noch in Entwicklung, soll aber nur mit LinkedLists und Speicheradressen arbeiten (also keine Gadgets oder ähnliches). Da ein Modul unter anderem viele Prozeduren und Variablen enthalten kann, möchte ich dass immer nur ein Thread auf die Prozeduren eines Moduls zugreift. Da die Prozeduren auch untereinander im Modul aufgerufen werden können, weiß ich nicht genau wo sich die Unterbringung eines Mutex anbietet.
Reicht für so etwas ein im Modul globales Mutex aus? Könnte es Probleme verursachen, wenn LockMutex() mehrfach aufgerufen wird?
...und noch so eine kleine Nebenfrage.... ist ein Mutex 100% sicher oder könnte es vorkommen, dass mehrere Threads exakt zeitgleich einen Mutex sperren wollen und somit z.B. 2 Threads eine Routine bearbeiten, die eigentlich nur eine bearbeiten darf.
Durch meine Erfahrungen mit Threads (Abstürze, Instabilitäten und Deadlocks) bin ich sehr vorsichtig geworden. Allerdings lässt er sich in meinem Fall nicht vermeiden