Если поток без разницы, то можно универсально подойти. Например, так:
В стартовой функции создаём 2 глобальных переменных и заносим в обе текущее время. В скрипте потока в месте сохранения в файл заносим текущее время во 2-ю глобальную переменную и вычитаем из него время, которое в 1-ой глобальной переменной. Если минута или больше прошла, то в 1- переменную заносим время из 2-й переменной, чтобы остальные потоки шли мимо, и после этого сохраняем необходимые данные в файл.И так до бесконечности. Сохранять данные будет случайный поток, который вовремя подошёл к моменту проверки прошедшего времени.


