удобней Семафоры конечно (это чисто для меня)....
есть супер книжка по этому делу
"Уильям Стивенс UNIX : межпроцессорное взаимодействие"
на русском языке
Семафоры деляться на Posix и System V, есть еще разделение памяти - тоже атасная вещь :)
Разница между мютексом и семафором состоит в том, что блокировки (мютексы) могут сниматься только потоками, которые ими владеют, тогда как изменять значение семафора может любой поток, имеющий к нему доступ. Поэтому придется следить за тем, как работает с семафорами поток, что потребует дополнительных усилий при программировании.