Ich bin auf Semaphoren in Java und las diesen Artikel http://docs.oracle.com/javase/1.5.0/docs/api/java/util/concurrent/Semaphore.html. Das einzige, was ich nicht verstehe, ist, warum die Methode acquire() nicht in einem synchronisierten Kontext verwendet wird. Mit Blick auf das Beispiel aus dem oben Webiste:Warum muss die Methode acquire() in Semaphoren nicht synchronisiert werden?
Sie schaffen eine Semaphore:
private Semaphore semaphore = new Semaphore(100);
und eine Genehmigung wie folgt erhalten:
semaphore.acquire();
Nun wäre es nicht möglich, dass zwei oder mehr Threads versuchen,() gleichzeitig zu erwerben? Wenn das so wäre, würde es ein kleines Problem mit der Zählung geben.
Oder behandelt der Semaphor selbst die Synchronisation?