セマフォは機能するためにブロックする必要があるため、矛盾しているように見えます。
インターネット検索では、これが何を意味するかを定義するのに役立つものは何も表示されません。
セマフォは機能するためにブロックする必要があるため、矛盾しているように見えます。
インターネット検索では、これが何を意味するかを定義するのに役立つものは何も表示されません。
セマフォの値が 0 の場合、セマフォに対するダウン操作は、誰かがリソースを解放してセマフォをインクリメントするまでブロックされます。
ノンブロッキング セマフォは、リソースが使用できない場合にダウン操作をブロックせず、むしろエラーを発生させます。これは、プログラムがすぐに、または実行を中断せずにそのリソースを必要とする場合に役立ちます。また、リソースが利用できない場合、プログラム ロジックは別のことを行うことができます。
ノンブロッキング セマフォは通常、ブロッキングせずに取得を試みることができるセマフォを指します。セマフォを「ロック」できない場合、失敗しますがブロックはしません。ロックできる場合は、ロックして true (ロックしたこと) を返します。
WaitForSingleObject()
たとえば、関連する待機操作では、タイムアウト値dwMillisecondsを指定できます。このパラメータが0
呼び出しの結果に設定されている場合、常にすぐに返されます。このようにして、セマフォの状態をブロックせずにテストできます。