2013-04-15 5 views
5

Ich brauche einen Thread, bis entwederC++ 11 alternativ pthread_cond_timedwait

  • warten, um ein Timeout abgelaufen ist, oder
  • eine Variable von einem anderen Thread geändert wird

Nach einigen Recherchen Ich habe herausgefunden pthreads bekam pthread_cond_timedwait die in diesem Fall nützlich sein könnte, wenn ich PThreads verwenden würde.

Ich verwende stattdessen C++ 11 Threads. Gibt es für mich eine geeignete Alternative, ohne komplett auf Pthreads umzusteigen?

Antwort

9

Ja, Sie wollen std::condition_variable von <condition_variable>, die eine Mitgliedsfunktion wait_for hat, die eine Zeitdauer dauert.

Die condition_variable Klasse ein Synchronisations primitiv ist, das einen Faden oder mehrere Fäden gleichzeitig werden kann verwendet zu blockieren, bis:

  • eine Benachrichtigung von einem anderen Thread empfangen
  • ein Timeout läuft ab
+0

Vielen Dank! Es funktioniert perfekt für meine Ziele. – Rob013