by Anonymous » 12 Apr 2025, 07:02
Ich habe hier ein Spielzeugprogramm (
http://stackoverflow.com/a/16400833) gefunden, um die Namen Semaphores zu lesen. Ich habe es etwas geändert und das genannte Semaphor in jedem untergeordneten Thread statt im übergeordneten Programm geöffnet. Nach dem sem_wait () habe ich einen sem_getValue (), dann einen Schlaf (1), dann sem_post () und ein anderes sem_getValue () gemacht. Das macht also Sinn. Warten Sie es auf 0, posten Sie es erneut (und lassen Sie den nächsten Thread fortfahren). von Semaphore -Datei "src ="
https://i.sstatic.net/pviskdfg.png "/>
i denken Sie, dass der Wert durch die Waiten erhöht wurde, so dass die Anzahl der Threads, die auf den Semaphor wartet. Ein Beitrag würde ihn dann verringern. Dies ist also nicht der "Wert", der von sem_getValue () abgerufen wird. Wie gesagt, Sem_Value () scheint mich nur 0 oder 1 zu bekommen.
Fehlt mir etwas offensichtlich?
Ich habe hier ein Spielzeugprogramm (http://stackoverflow.com/a/16400833) gefunden, um die Namen Semaphores zu lesen. Ich habe es etwas geändert und das genannte Semaphor in jedem untergeordneten Thread statt im übergeordneten Programm geöffnet. Nach dem sem_wait () habe ich einen sem_getValue (), dann einen Schlaf (1), dann sem_post () und ein anderes sem_getValue () gemacht. Das macht also Sinn. Warten Sie es auf 0, posten Sie es erneut (und lassen Sie den nächsten Thread fortfahren). von Semaphore -Datei "src =" https://i.sstatic.net/pviskdfg.png "/>
i denken Sie, dass der Wert durch die Waiten erhöht wurde, so dass die Anzahl der Threads, die auf den Semaphor wartet. Ein Beitrag würde ihn dann verringern. Dies ist also nicht der "Wert", der von sem_getValue () abgerufen wird. Wie gesagt, Sem_Value () scheint mich nur 0 oder 1 zu bekommen.
Fehlt mir etwas offensichtlich?