Сценарий: я написал большой кусок кода, работающий на двух параллельных потоках, которые идентичны в терминах кода и просто обрабатывают разные данные. Я вижу недетерминированные результаты. Если я отключу один из двух потоков, результаты станут детерминированными. Внутри этого кода я использую некоторые статические встроенные функции (основная причина: они небольшие функции, которые мне нужны здесь и там, для которых я просто дублирую код в единицах перевода, где они нужны), и я хотел бы понять, если они может быть возможной причиной моей проблемы.Являются ли статические встроенные функции потоками безопасными?
Являются ли статические встроенные функции потокобезопасными в C? С другой стороны, если у них нет статической переменной внутри, но только некоторые локальные переменные и входные параметры, будет ли одновременный вызов из 2 потоков вызвать непредсказуемое поведение?
Вещи, которые не являются потокобезопасными, - это вещи, которые могут измениться. Код не изменяется (при нормальных обстоятельствах), но переменные часто делают. – xaxxon