Przede wszystkim, nie ma czegoś takiego jak głupie pytanie ...
Semaphore pozwala wielu wątków do „zdobyć” zasób. Powinni sprawdzić, czy zasób jest dostępny. To jak zawór do kontroli przepływu.
A Lock jest do wyłącznego dostępu. Tylko jeden wątek na raz.
Pozwala na uruchomienie kodu (Runnable lub Callable) przy użyciu ograniczonej ilości wątków Nie musisz zawracać sobie głowy budowaniem tego samodzielnie, jest już zaimplementowany dla Ciebie w interfejsie API JSE. Możesz zrobić własne z semaforami i kolejkami ... ale jeśli nie masz dobrego powodu, nie trać czasu.
Obrazowanie trzeba zaimplementować serwer WWW, który otrzymuje pewne żądanie na port 80. Nie chcesz używać tego samego wątku, który nasłuchuje na tym porcie w celu przetworzenia całego żądania (jest to strata zasobów ...) . Możesz użyć umowy ThreadPoolExecutor z żądaniem, przetworzyć je i odpowiedzieć klientowi. ThreadPoolExecutor można skonfigurować tak, aby wykorzystywał bieżące procesory: optymalną liczbę zagrożeń dla tej architektury i tego zadania.
Concurrency in practice to fajna książka, dzięki której możesz pogłębić swoją wiedzę na ten temat.
Mam nadzieję, że pomogę ci i przepraszam za mój podstawowy angielski.
Dzięki za wskazanie dla dokumentów Java 7. Właśnie googlowałem i otworzyłem link. – mehta
Google jest trochę nieaktualny dla linków. Często daje ci 1.4.2. –
Wyszukiwarka Google: "Java 7 XXX" z XXX = nazwa klasy działa w 99% przypadków. Na przykład: [wyszukaj Java 7 Semaphore] (https://www.google.co.uk/search?q=java+7+semaphore). – assylias