Я использую мьютекс, у меня есть вопросы при инициализации. Пожалуйста, направьте меня

#initialization #pthreads #mutex

#инициализация #pthreads #мьютекс

Вопрос:

Я использую много мьютексов pthread. Моя программа использует их, а затем, в определенный момент я хочу выполнить мягкий перезапуск своей программы, я повторяю «Мягкий перезапуск», а не жесткий перезапуск. Под мягким перезапуском я подразумеваю, что я не буду выходить из программы, я запускаю программу еще раз, используя оператор «goto», который запускается при запуске программы, чтобы еще раз запустить программу.

Я сомневаюсь, что если я использую мьютекс в своей программе и на полпути получаю программный перезапуск, при котором я инициализирую этот мьютекс. Будут ли они инициализированы независимо от того, где они были в программе.

Я проверил с обычными типами данных, такими как «int», они инициализируются в соответствии с тем, что мы указали при перезапуске. Но я хочу от вас уверенности в отношении мьютексов.

Комментарии:

1. Кодируйте, иначе этого не произойдет.

Ответ №1:

Если вы вызовете для них ‘pthread_mutex_init’, они будут инициализированы, как если бы они были новыми мьютексами. Просто убедитесь, что ни один поток не обращается или не может обращаться к ним при попытке их повторной инициализации.

Тем не менее, ваше представление о мягком перезапуске звучит для меня немного странно. Если бы мне пришлось реализовать такую вещь (и я бы сопротивлялся этому до конца Земли) Я бы сделал это, избавившись от всех предыдущих объектов и создав новые, а не пытаясь повторно использовать остатки от предыдущего запуска.