BМьютекс допускает только 1 поток, семафор - N потоков
CСемафор быстрее
DМьютекс только для процессов
Объяснение вопроса
Мьютекс - блокировка "один владелец": только один поток может держать мьютекс. Семафор - счётчик: допускается N одновременных потоков. В Go мьютекс - sync.Mutex; семафор можно сделать буферизованным каналом make(chan struct{}, N).