Dostaję się do Semaforów w Javie i czytałem ten artykuł http://docs.oracle.com/javase/1.5.0/docs/api/java/util/concurrent/Semaphore.html. Jedyne, czego nie otrzymuję, to dlaczego metoda acquire() nie jest używana w zsynchronizowanym kontekście. Patrząc na przykład z powyższego webiste:Dlaczego metoda nabywania() w semaforach nie musi być zsynchronizowana?
Tworzą semafora:
private Semaphore semaphore = new Semaphore(100);
i uzyskać pozwolenie tylko tak:
semaphore.acquire();
Teraz nie byłoby to możliwe, że dwa lub więcej wątków próbuje zdobyć() w tym samym czasie? Jeśli tak, nie byłoby problemu z liczeniem.
Czy sam semafor obsługuje synchronizację?