Thread mit weiterem Thread wecken



  • Guten Morgen,

    Hoffe ich bin hier richtig. Ich probiere mich gerade an Thread Programmierung. Nun wollte ich fragen wie ich zwei Threads aufeinander "abstimmen" kann. Kann ich bspw. einen Thread schlafen legen und ihn durch einen anderen wecken? Damit beide abwechselnd laufen, habe ich beide für unterschiedliche Zeit schlafen gelegt, damit der jeweils andere Thread drankommt.

    Aber momentan stören die beiden sich bei der Ausgabe der Konsole immer wieder zwischendrin.

    Vielen Dank schonmal,

    Gruß Dominic



  • Um Threads zu synronisieren gibt es mehrere Möglichkeiten. Eine Möglichkeit ist ein Mutex. Wenn ein Thread auf eine mit einem anderen Thread geteilte Resource zugreifen will, wird der Mutex gesperrt sodass kein anderer Thread dieses Resource benutzen kann. Außerdem gibt es noch Condition Variables. Damit kannst du Threads benachrichtigen falls es etwas zu tun gibt. Schau dir mal die std::mutex und std::condition_variable Klassen an.



  • DDyrdek1992 schrieb:

    Kann ich bspw. einen Thread schlafen legen und ihn durch einen anderen wecken? Damit beide abwechselnd laufen, habe ich beide für unterschiedliche Zeit schlafen gelegt, damit der jeweils andere Thread drankommt.

    Wenn du willst dass zwei Sachen immer abwechselnd laufen, dann mach sie in EINEM Thread, hintereinander.


Log in to reply