Как сделать чтоб одна вункция роботала всегда а другая паралельно каждую секунду?

Для достижения такого функционала в C++ можно использовать многопоточность. Многопоточность позволяет создавать и запускать несколько потоков выполнения, которые работают параллельно.

Сначала создадим две функции: одну, которая будет работать всегда, и вторую, которая будет выполняться каждую секунду.

#include <iostream>
#include <chrono>
#include <thread>

// Функция, которая работает всегда
void alwaysRunningFunction()
{
    while (true)
    {
        // Здесь ваш код
    }
}

// Функция, которая выполняется каждую секунду
void functionToRunEverySecond()
{
    while (true)
    {
        // Здесь ваш код
        std::this_thread::sleep_for(std::chrono::seconds(1));
    }
}

int main()
{
    // Создаем два потока выполнения
    std::thread t1(alwaysRunningFunction);
    std::thread t2(functionToRunEverySecond);

    // Ждем, пока оба потока завершатся (хотя основной поток, в котором выполняется main, будет ждать только t1)
    t1.join();
    t2.join();

    return 0;
}

В этом коде мы создаем два потока выполнения - t1 и t2. В первом потоке t1 вызывается функция alwaysRunningFunction, которая будет работать всегда. Во втором потоке t2 вызывается функция functionToRunEverySecond, которая будет выполняться каждую секунду.

Функция alwaysRunningFunction содержит ваш код, который должен работать постоянно. Функция functionToRunEverySecond содержит ваш код, который должен выполняться каждую секунду. В примере используется std::this_thread::sleep_for, чтобы задержать выполнение функции на одну секунду между итерациями.

В основной функции main мы ждем, пока оба потока завершатся, вызывая join для каждого из них.

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