Глобальные переменные в многопоточной среде всегда необходимо синхронизировать для одновременного доступа через несколько потоков.
Если ваша среда многопоточная, обратный вызов будет вызываться в отдельном потоке и, следовательно, должен быть синхронизирован.
Если ваша среда однопоточная, синхронизация не требуется.
Что такое обратный вызов?
Проще говоря, Функция обратного вызова - это функция, которая не вызывается явно программистом. Вместо этого есть некоторый механизм, который постоянно ожидает возникновения событий, и он будет вызывать выбранные функции в ответ на определенные события.
Этот механизм обычно используется, когда операция (функция) может занимать много времени для выполнения, и вызывающая функция не хочет ждать, пока операция завершится, но хочет быть осведомлена о результате операции. Как правило, функции обратного вызова помогают реализовать такой асинхронный механизм , в котором вызывающий регистр регистрируется, чтобы получить информацию о результате длительной обработки и непрерывных других операций в более поздний момент времени, звонящий получает информацию о результате.