Семафоры очень близки к ядру каждой операционной системы.Когда вы хотите использовать параллелизм, они являются ценным инструментом.Они контролируют, как и в трафике, доступ нескольких «потребителей» к одним и тем же «ресурсам».
Например, предположим, что вы хотите записывать в файл журнала из разных приложений, вы можете использовать приложение, которое,используя семафоры, остановите или разрешите другому записать в этот файл.Таким образом, каждое приложение будет сначала опрашивать приложение «семафор», и, если это разрешено, затем записывать в файл.
Если вам нужна дополнительная информация / примеры, пожалуйста, посмотрите здесь:
http://www.experiencefestival.com/semaphore_programming_-_c_semaphore
Семафоры и параллельное программирование
http://programmingexamples.wikidot.com/java-semaphore
Надеюсь, что поможет,