在Linux中,C++可以使用<ctime>
库中的std::chrono
和<thread>
库来实现定时器功能
#include <iostream>
#include <chrono>
#include <thread>
void timer_handler() {
std::cout << "Timer expired!" << std::endl;
}
int main() {
// 获取当前时间点
auto start_time = std::chrono::high_resolution_clock::now();
// 设置定时器时长,例如5秒
std::chrono::seconds timer_duration(5);
// 将定时器时长转换为纳秒
auto timer_ns = std::chrono::duration_cast<std::chrono::nanoseconds>(timer_duration).count();
// 创建一个线程,执行定时器任务
std::thread timer_thread([&]() {
std::this_thread::sleep_for(timer_ns);
timer_handler();
});
// 等待线程结束
timer_thread.join();
return 0;
}
在这个示例中,我们首先获取当前时间点,然后设置定时器时长为5秒。接着,我们将定时器时长转换为纳秒,并创建一个新的线程来执行定时器任务。在这个线程中,我们使用std::this_thread::sleep_for
函数让线程休眠指定的纳秒数。当休眠结束时,我们调用timer_handler
函数来处理定时器事件。最后,我们使用join()
函数等待线程结束。
请注意,这个示例仅用于演示目的,实际应用中可能需要根据具体需求进行调整。例如,你可能需要使用互斥锁或其他同步机制来确保线程安全。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。