multimolti
Erfahrenes Mitglied
Hallo!
Ich habe gestern mal ein Programm geschrieben, in dem mehrere Threads Daten in ein gleiches Array schreiben. Jeder Thread greift allerdings nur auf ein Element des Arrays zu einem Zeitpunkt zu.
Jetzt passiert es leider manchmal (3 Threads auf 19.000 Array-Elemente, also nicht sehr oft), dass zwei Threads gleichzeitig einen Wert auslesen, daraus ihre Schlüsse ziehen und dann den Wert des anderen überschreiben.
Wie kann ich, wenn grade Thread 1 auf das Element array[x] zugreift, nur diese Element blockieren, so dass jeder andere Thread, der eventuell darauf zugreifen will, kurz warten muss?
Ich habe mir schon mal das Lock-Keyword angeschaut, verstehe das aber nicht wirklich.
Kann mir jemand helfen?
Ich habe gestern mal ein Programm geschrieben, in dem mehrere Threads Daten in ein gleiches Array schreiben. Jeder Thread greift allerdings nur auf ein Element des Arrays zu einem Zeitpunkt zu.
Jetzt passiert es leider manchmal (3 Threads auf 19.000 Array-Elemente, also nicht sehr oft), dass zwei Threads gleichzeitig einen Wert auslesen, daraus ihre Schlüsse ziehen und dann den Wert des anderen überschreiben.
Wie kann ich, wenn grade Thread 1 auf das Element array[x] zugreift, nur diese Element blockieren, so dass jeder andere Thread, der eventuell darauf zugreifen will, kurz warten muss?
Ich habe mir schon mal das Lock-Keyword angeschaut, verstehe das aber nicht wirklich.
Kann mir jemand helfen?