私はJavaでセマフォを使い始めており、この記事http://docs.oracle.com/javase/1.5.0/docs/api/java/util/concurrent/Semaphore.htmlを読んでいました。私が得られない唯一のことは、acquire()メソッドが同期されたコンテキストで使用されない理由です。上記のウェブサイトの例を見てください。
それらはセマフォを作成します:
private Semaphore semaphore = new Semaphore(100);
次のような許可を取得します。
semaphore.acquire();
さて、2つ以上のスレッドが同時にacquire()を試みることは可能ではないでしょうか?もしそうなら、カウントに少し問題があります。
または、セマフォ自体が同期を処理しますか?