Gast
#5333705
Hallo, ich habe einen Vektor aus Objekten:
1 | |
2 | |
3 | |
4 | |
Nun habe ich einige Workerthreads, die sich jeweils immer ein Objekt aus der Liste "leihen" (einen Zeiger auf in Objekt im Vektor), einige Sekunden damit arbeiten und wieder einige Zeit warten. Die Worker sollen das gleichzeitig dürfen. Nun gibt es noch einen Thread der die Struktur ändern kann (hinzufügen oder Entfernen von Datenobjekten). Der "Strukturthread" soll, wenn Umbauarbeiten anstehen, warten bis alle Worker gerade kein Datenobjekt mehr brauchen. Während der Strukturthread umbaut, darf kein Workerthread ein Datenobjekt bekommen. Damit der Strukturthread nicht unendlich warten muss, dürfen die Worker auch schon nichts aus der Liste holen wenn Umbauarbeiten anstehen. 1. Workerthreads leihen Objekte, auch gleichzeitig 2. Umbaumaßnahmen stehen an; a) Workerthreads müssen warten bis Objekte geholt werden können b) Strukturthread wartet bis alle Worker fertig sind 3. Vektor umbauen 4. Workerthreads dürfen wieder Objekte holen. Mir stehen Semaphore und Mutexe zur Verfügung (Linux Posix C++), aber wie könnte ich das damit umsetzen? Werner