Предположим, у меня есть многопоточная программа с несколькими глобальными переменными, которые используются в суровых частях потоковой функции.блокировка критических областей с мьютексом pthread?
Мой вопрос: могу ли я объявить только один замок и использовать его во всей программе?
Я имею в виду ... когда я блокирую блок кода, я только предотвращаю выполнение другими потоками этого конкретного блока кода ... или я предотвращаю выполнение всех других блоков кода, которые требуют приобретения замок?
Резюме: Должен ли я объявлять замок для каждого другого критического региона?
Я надеюсь, что смысл ... Im еще новым для этих понятий
«... я предотвращаю выполнение всех других блоков кода, которые требуют приобретения замка?» -> да. когда вы вызываете 'pthread_mutex_lock', если используется мьютекс, он блокирует поток, в котором вызывается' pthread_mutex_lock', и поток перезапускает его выполнение, когда 'pthread_mutex_unlock' вызывается потоком, который имеет мьютекс. –