Angenommen 96 Threads greifen auf dieselbe QMap<int,QList<UserClass*>*>* zu und holen sich bei jedem Zugriff ein QList-Segment mit den UserClass-Objekten.
Interaval-mäßig soll die große QMap neu erstellt werden. Sobald die 2. QMap erstellt ist soll die alte durch die neue ersetzt werden.
Die Frage ist jetzt, wie ich den Austausch sauber über die Bühne bringe, sodass kein Thread-Zugriff fehlschlägt.
Einfach den pointer zuweisen
Code: Alles auswählen
void Class::replace( QMap<int,QList<UserClass*>*>* new)
{
QMap<int,QList<UserClass*>*>* help_pointer;
help_pointer = old;
old = new;
//delete help_pointer...
}