在C中每x秒执行一次方法
发布时间:2020-12-13 19:23:18 所属栏目:Linux 来源:网络整理
导读:是否有一个工作计时器的例子,它使用C每x秒执行一些函数. 我很欣赏一个工作代码示例. 最佳答案 你可以产生一个新的线程: void *threadproc(void *arg){ while(!done) { sleep(delay_in_seconds); call_function(); } return 0;}...pthread_t tid;pthread_cre
是否有一个工作计时器的例子,它使用C每x秒执行一些函数. 我很欣赏一个工作代码示例. 最佳答案
你可以产生一个新的线程:
或者,您可以使用
当然,这两种方法都存在这样的问题,即您定期调用的函数需要是线程安全的. 信号方法特别危险,因为它也必须是异步安全的,这很难做到 – 即使是像printf这样简单的东西也不安全因为printf可能会分配内存,如果SIGALRM中断了对malloc的调用,你就是陷入困境,因为malloc不可重入.所以我不建议使用signal方法,除非你所做的只是在信号处理程序中设置一个标志,后来由其他一些函数检查,这会让你回到与线程版本相同的位置. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |