Semaphore; Erzeugung, anforder und freigeben



  • Ein Hallo an alle,

    ich benötige die Funktionen unter der WIN32 API zur Erzeugung eines Semaphores, zum anfordern eines Semaphores und zum freigeben eines Semaphores.
    Wenn ich nicht ganz flasch liege müssten dies sein:
    Erzeugung: CreateSemaphore
    Anfordern: OpenSemaphore
    Freigeben: ReleaseSemaphore
    Bitte um Bestätigung oder Verbesserung.
    Schon mal vielen Dank für die Hilfe! 😃
    Viele Grüße
    Eljot



  • Du kannst einfach mal in der MSDN danach suchen. Wenn es die nicht geben sollte, dann werden es wohl die falschen sein.

    Mfg Ominion



  • hast deine frage doch schon selbst beantwortet...allerdings gibt ReleaseSemaphore die semaphore ned frei sondern inkrementiert den zähler der semaphore. wenn du die semaphore ned mehr benötigst rufst du CloseHandle auf...



  • Was willst du eigentlich machen, weil normalerweise Threads ja auch ausreichen.

    Mfg Ominion



  • Wenn du das ganze plattformunabhänig willst, solltest du mal schauen obs da in boost was dazu gibt. Hättest du dann aber gelich schreiben können, anstatt 2 threads aufzumachen



  • Er ist noch neu hier. Wahrscheinlich wusste er nicht, dass es so eine Möglichkeit überhaupt gibt (wusste ich am Anfang auch nicht).

    Mfg Ominion



  • Naja wenn man mit Semaphoren arbeitet ist man nciht mehr ganz so neu.
    Aber jetzt weiß er es, war schließlich konstruktiv gemeint.
    Sonst müsste er ja alles 2 mal coden



  • Ich kenn einen (nicht ich), der hat sofort mit der WinAPI angefangen, ohn vorher jemals programmiert zu haben. ER hat zwar jetzt Mühe mit der WinAPI, aber bekommt es trtzdem öfters hin.

    Mfg Ominion



  • Erst mal vielen Dank an alle für die reichlichen Antworten.
    Um ein wenig Klarheit in die Sache zu bringen, ich muss diese Antworten finden, weil unser Prof. das so will. Hier geht es nur um die Theorie, nicht um den praktischen Einsatz. Es geht hier um die OS-Theorie. Wir sollen die Semaphore WIN32 API Funktionen benennen. Ich habe ein wenig recherchiert und die von mir gegebenen Antworten gefunden, jedoch war ich mir nicht ganz sicher und dachte mir dann, warum frage ich nicht Leute die sich mit so was auskennen. Das ist der ganze Hintergrund.... :p
    Und weil das ganze so theoretisch ist und erst mal keinerlei praktischen Bezug hat, "muss" man diese Sache auch etwas schwammig nehmen, weil ja der praktische Bezug fehlt und erst einmal gar nicht gewünscht ist. 🕶
    Ich habe jetzt noch mal ein Wenig in der MSDN gestöbert, also hier nochmals mein "Vorschlag":
    Erzeugen: CreateSemaphore
    Anfordern p(S): waitforsingelobject
    Freigeben v(S): ReleaseSemaphore
    Könnte man das so schreiben, oder hat jemand einen anderen Vorschlag?
    Ich hoffe, ich konnte etwas Klarheit in meine Fragestellung bekommen. 🙄
    Viele Grüße
    Eljot



  • so wie ich das sehe erhöht man mit ReleaseSemaphore und mit einer Warte-Funktion verringert man den Zähler.


Anmelden zum Antworten