[!] Verwendung von Threads mit Mutex
Verfasst: 06.02.2006 14:17
ich habe mal einen kleinen Test mit Threads und dem Zugriff aufs Strings via Mutex gemacht, scheint zu funktionieren.
Hier ist der Test:
Achtung - bitte mit dem Debugger laufen lassen, Programm läuft in einer Endlosschleife, via Debugger Programm beenden!!
cya
Euer BahnFahrer
Hier ist der Test:
Code: Alles auswählen
Global MyMutex.l
Global DerString.s
Procedure MyThread1(x)
Repeat
LockMutex(MyMutex)
If DerString = "Thread 4"
DerString = "Thread 1"
Debug DerString
EndIf
UnlockMutex(MyMutex)
Delay(10)
ForEver
EndProcedure
Procedure MyThread2(x)
Repeat
LockMutex(MyMutex)
If DerString = "Thread 1"
DerString = "Thread 2"
Debug DerString
EndIf
UnlockMutex(MyMutex)
Delay(10)
ForEver
EndProcedure
Procedure MyThread3(x)
Repeat
LockMutex(MyMutex)
If DerString = "Thread 2"
DerString = "Thread 3"
Debug DerString
EndIf
UnlockMutex(MyMutex)
Delay(10)
ForEver
EndProcedure
Procedure MyThread4(x)
Repeat
LockMutex(MyMutex)
If DerString = "Thread 3"
DerString = "Thread 4"
Debug DerString
Debug "-------"
EndIf
UnlockMutex(MyMutex)
Delay(10)
ForEver
EndProcedure
MyMutex = CreateMutex()
If MyMutex
DerString = "Thread 1"
Debug DerString
CreateThread(@MyThread1(), 1)
CreateThread(@MyThread2(), 1)
CreateThread(@MyThread3(), 1)
CreateThread(@MyThread4(), 1)
Repeat
Delay(100)
ForEver
EndIf
cya
Euer BahnFahrer