Я услышал эти слова, связанные с параллельным программированием, но каково различие между ними?
Блокировка позволяет только одному потоку войти в заблокированную часть, и блокировка не используется другими процессами.
Мьютекс аналогичен блокировке, но может быть общесистемным (совместно используемым несколькими процессами).
Семафор делает то же самое, что и мьютекс, но позволяет ввести x количество потоков, это можно использовать, например, для ограничения количества одновременно выполняемых задач с интенсивным использованием ЦП, io или RAM.
Подробнее о различиях между мьютексом и семафором читайте здесь .
У вас также есть блокировки чтения / записи, которые позволяют либо неограниченное количество читателей, либо 1 писатель в любой момент времени.