Нет. Замки просто состоят из системного вызова. В C / C ++ нет необходимости перегружать интерпретатор, нет «глобальной блокировки интерпретатора» и т. Д.
Ожидание блокировки , конечно, замедляет работу, и вам следует тщательно спланируйте дизайн своего приложения, чтобы минимизировать шансы потока, запрашивающего блокировку и ожидающего ее получения. Наихудший сценарий - когда вы делите свое приложение на несколько потоков, но все они вынуждены что-то ждать и тем самым эффективно сериализуются.