c++ - 在启动另一个计时器之前等待 20 秒的非阻塞计时器

标签 c++ linux timer

我想在线程启动 20 秒后打开计时器。我如何在不阻止执行的情况下执行此操作。

所以我的线程入口函数是ThreadInAction。在从 ThreadInAction 启动计时器之前,我想等待 20 秒,但我不想使用 sleep 或其他方式阻止此线程。 我们如何做到这一点?

void* ThreadInAction()
{
     //code

}

最佳答案

您可以像下面这样为 SIGALRM 注册一个信号处理程序。

sigaction(SIGALRM,struct_sigaction,NULL)

struct_sigaction 有一个成员 sa_handler,它将指向您的信号处理函数。

现在使用 setitimer 创建定时器。将计时器设置为 20 秒。

关于c++ - 在启动另一个计时器之前等待 20 秒的非阻塞计时器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30208417/

相关文章:

c++ - 如何在 C++ 中的大端和小端值之间进行转换?

C++程序比较5个人的年龄并打印最年长的人的名字

mysql - 0 io 密集型应用程序上的 iowait。我的cpu用了什么时间?

java - Android 应用程序中的屏幕计时器?

PHP提示: How can I avoid my "receipt-page" to load twice?

c++ - Qt 部署 - QGraphicsView 不显示在其他机器上

c++ - 模板化结构数组

linux - awk + ​​如何读取带引号的 CSV 文件

c++ - system() 在作为 CGI 调用时总是返回非零值

C、clock_gettime,返回了不正确的纳秒值?