Через глобальные переменные.
Прошёл час, вывели оповещение, изменили значение глоб. переменной на "1", другие потоки проверяют какое значение, если "1", то пропускают действие.
Затем идёт проверка сколько времени прошло после вывода оповещения, если меньше часа, оставляем значение - "1" потоки не могут получить доступ к функции вывода оповещения, если больше часа, то сбрасываем глобальную переменную на "0".
Любой из потоков, который первый доберётся до проверки глобальной переменной выведет оповещение и изменит глобальную переменную снова на "1" и другие потоки снова не смогут получить доступ к оповещению.