003
04.05.2005, 15:35 Uhr
RHBaum
|
Aehm, wenn du 2 mal hintereinander nen Lock auf einen Mutex aufrufst, passiert genau das, was passieren soll ....
der 1. aufruf geht durch, der 2. aufruf wird am lock blockiert, solange bis: - a. irgendjemand Unlock auf das object aufruft, vorzugsweisse sollte das der thread sein, der auch das 1. Lock aufgerufen hat ... - b. dein thread vom BS irgendwie abgeschossen wird ... was bei windows z.B. gar nich so unueblich iss, wenn man den zu lange warten laesst ... Der arbeitet sein "Programm" dann natuerlich nich weiter ab ....
Mutex ist dazu da, um kritische Variablen zu schuetzen ... also zu gewaehrleisten, dass immer nur 1 thread grad gewisse geschuetzte bereiche (variablen) bearbeitet ....
Stell dir nen mutex wie ne ampel vor ... der 1. kommt, ampel is gruen ... der 1. schaltet ampel auf rot und geht weiter ... der 2. kommt, ampel iss rot, und wartet an der ampel.... der 1. kommt irgendwo an wo er nen schlter fuer die ampel hat, und schaltet die ampel auf gruen und geht weiter, der 2. bekommt gruen von der ampel ... er schaltet sie natuerlich sofort auf rot und geht auch weiter, bis er irgendwann die mal wieder auf gruen schaltet ...
Was ist daran unklar ?
Ciao ... |