so habe ich online ein bisschen nach einer Antwort gesucht und nichts scheint klar zu beantworten. Meine Frage ist einfach, ich brauche, sagen wir, 5 Worker-Threads, um in eine Warteschlange einzutreten und dann ihrem Boss-Thread (Thread 6) zu signalisieren, dass sie alle in der Warteschlange bereit für die Arbeit sind. Aufgrund der Art und Weise, wie der Rest meines Programms funktioniert, wäre es am besten, wenn das, was ich erreichen möchte, funktioniert:Ruft pthread_cond_signal (...) und dann rufen pthread_cond_wait (...) den Kellner auf?
Also wenn ich den Boss-Thread die Sperre getroffen habe, sehen Sie, dass die Warteschlange nicht vollständig ist voll, wird der Chef pthread_cond_wait(...);
und warten, bis es voll ist. Jetzt kommen alle Arbeitsfäden in die Warteschlange und treffen eine Wartezeit, und sobald der letzte Thread eintritt, signalisiert er dem Master und wartet dann. Also zwischendurch, wenn der letzte Arbeiter signalisiert, wann er auf seine Wartezeit trifft, wartet der Chef noch, bis der letzte Helfer die Wartezeit erreicht? Weil ich nicht möchte, dass der Chef etwas macht, bis der letzte Thread wirklich wartet. Also wird der letzte Thread nicht schlagen ein pthread_mutex_unlock(...)
wird er ein pthread_cond_wait(...)
schlagen und ich möchte überprüfen, dass dies uns den Chef wecken wird. Vielen Dank im Voraus, ich hoffe, meine Frage ist klar, ich neige dazu, alles zu erklären:/