boost::lock() boost::unlock()



  • Wie benutze ich boost::lock() und boost::unlock()? Die API gibt da nicht sehr viel aufschluss. Es scheinen zwar "member funktions" zu sein (member funktion interpretiere ich mal frei als methode) aber zu welcher Klasse, bzw wovon muss man ein Objekt erstellen um die methoden benutzen zu können?

    Danke für eure Hilfe

    PS: kennt vll jemand ne bessere boost API als die? Ob Englisch oder Deutsch ist mir egal nur ich finde die genannte viel zu kurz gehalten, als das man ,wenn man auch nur die kleinste Frage hat, damit Arbeiten könnte.


  • Administrator

    Du musst einfach einen Lock-Guard instanzieren:
    http://www.boost.org/doc/libs/1_43_0/doc/html/thread/synchronization.html#thread.synchronization.locks

    Der Rest passiert dann automatisch. RAII eben.

    void foo()
    {
      boost::lock_guard<boost::mutex> guard(mutex);
    
      // synchronisiert.
    }
    

    Im übrigen sollte die Funktionen lock und unlock jedem sofort verständlich sein, welcher sich schon mal mit Thread beschäftigt hat. Falls es dir also nicht sofort klar wird, denke ich, dass du dich noch nicht so gut mit Thread auskennst? Dann ist die Dokumentation von Boost.Thread aber auf die völlig falsche Anlaufstelle. 🙂

    Grüssli



  • Jud4s schrieb:

    PS: kennt vll jemand ne bessere boost API als die? Ob Englisch oder Deutsch ist mir egal nur ich finde die genannte viel zu kurz gehalten, als das man ,wenn man auch nur die kleinste Frage hat, damit Arbeiten könnte.

    😕 Ich kann dir noch http://www.highscore.de/cpp/boost/index.html anbieten, aber die Doku ist doch eigentlich ausführlich genug...


Anmelden zum Antworten