Я только начал изучать API-интерфейс pthread. Я использую разные книги и веб-сайты, и, судя по тому, что они все сообщают, функции синхронизации pthread (например, связанные с мьютексами) работают как для однопроцессорных, так и для многопроцессорных сред. Но ни один из этих источников прямо не заявил об этом, поэтому я хотел знать, действительно ли это так (конечно, я так считаю, я просто хотел быть на 100% уверенным).Предоставляет ли pthread API синхронизацию в многопроцессорной среде?
Итак, если два потока, выполняющиеся на разных процессорах, называемых блокировкой (например, pthread_mutex_lock()
) на одном и том же мьютексе одновременно, выполнялось бы выполнение этой процедуры последовательно, а не параллельно? И после того, как первая блокировка завершена, и поток, вызывающий его, имеет частный доступ к критическому разделу, делает ли блокировка, выполняемую другим потоком другого ЦП, приостанавливать последний поток?
Только представьте себе на одну секунду последствия, если ответ на ваш вопрос был отрицательным. –
Да. Было бы не очень полезно, если бы это не так, не так ли. –