ich habe ein paar Threads, die parallel Verzeichnisse auslesen sollen.
Je nachdem ob in dem Verzeichnis spezielle Datentypen liegen, dauert die Verarbeitung unterschiedlich lange.
Mein Wunsch ist es nun die Threads, die mit der Verarbeitung fertig sind, schlafen zu legen, bis alle anderen auch fertig sind. Dann sollen sie ein bestimmtes Interval abwarten und von vorne beginnen.
Im Producer-Thread habe ich einen Counter, der weiß wie viele Threads gestartet wurden. Jeder Thread sendet bei Abarbeitung ein Signal ab. Wenn nun n Threads das Signal emitiert haben, wobei n die Anzahl der Threads ist, dann weiß ich, alle Threads sind fertig.
Wie würdet ihr dieses Problem angehen?
Ich habe schon etwas mit QWaitConditions experimentiert, aber es nicht so hinbekommen, wie gewünscht.
Code: Alles auswählen
leseVerzeichnisseAus();
waitForOtherThreads();
sleep(interval);
Ich hoffe mir kann hierbei geholfen werde.
Grüße, KK