Для достижения такого функционала в 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
для каждого из них.
Помните, что при работе с многопоточностью необходимо быть внимательным к возможным проблемам синхронизации и доступом к общим ресурсам. Используйте механизмы синхронизации, такие как мьютексы или атомарные операции, чтобы предотвратить гонки данных и другие проблемы, связанные с конкурентным доступом к общим ресурсам.