温馨提示×

c++定时器如何实现

c++
小亿
125
2023-11-09 16:32:59
栏目: 编程语言

在C++中,可以使用多种方法来实现定时器。

  1. 使用<chrono>库和<thread>库来实现定时器。可以使用std::this_thread::sleep_for()函数来让线程休眠指定的时间,然后执行定时任务。例如:
#include <iostream>
#include <chrono>
#include <thread>

void timerCallback()
{
    std::cout << "定时器回调函数" << std::endl;
}

int main()
{
    std::chrono::seconds interval(1); // 定时器间隔为1秒
    
    while (true) {
        timerCallback();
        std::this_thread::sleep_for(interval);
    }
    
    return 0;
}
  1. 使用系统提供的定时器函数,如setitimer()timer_create()等。这些函数可以在一定时间间隔后触发一个信号或执行指定的回调函数。例如:
#include <iostream>
#include <csignal>
#include <unistd.h>

void timerCallback(int signum)
{
    std::cout << "定时器回调函数" << std::endl;
}

int main()
{
    signal(SIGALRM, timerCallback);
    
    struct itimerval timer;
    timer.it_value.tv_sec = 1; // 初始定时器间隔为1秒
    timer.it_value.tv_usec = 0;
    timer.it_interval.tv_sec = 1; // 定时器间隔为1秒
    timer.it_interval.tv_usec = 0;
    
    setitimer(ITIMER_REAL, &timer, nullptr);
    
    while (true) {
        pause();
    }
    
    return 0;
}

这些只是两种简单的实现方式,具体选择哪种方式还要根据实际需求和使用场景来决定。

0