【问题标题】:What is the best method of implementing timer inside a thread? [closed]在线程内实现计时器的最佳方法是什么? [关闭]
【发布时间】:2015-07-24 17:51:15
【问题描述】:

我需要在我的线程中定期执行一些操作。最好的方法是什么? 就像,我在 linux 守护进程和 android 应用程序之间有一个本地套接字通信。在这种情况下,如果我想从 deamon 定期向 android 应用发送数据,我该如何进行?

【问题讨论】:

  • 欢迎来到 Stack Overflow!请拨打tour 并阅读How to Ask,了解我们对问题的期望。见On-topic Reference
  • 我用来实现这一点的方式是通过 "select" 。我们可以使用 select 调用锁定 while 循环。我们可以在 select 调用中给出超时值,然后获取定时器值....
  • 请帮我添加这个问题的答案。我已经找到了答案。但问题已经结束了。

标签: c linux multithreading timer


【解决方案1】:

如果你使用 Linux 为什么不试试unistd.hsleep()usleep() 函数呢?

sleep(5);

将暂停线程五秒钟,然后恢复执行。


sleep(sec)

sleep() 函数应导致调用线程暂停执行,直到参数 seconds 指定的实时秒数已经过去或信号被传递到调用线程及其动作是调用信号捕获函数或终止进程。

usleep(usec)

usleep() 函数暂停调用线程的执行(至少)usec 微秒。

强调我的。 取自 herehere

【讨论】:

    【解决方案2】:

    如果您想要真正准确的计时,您应该使用Simple Signals - C programming and alarm function。如果您不这样做,使用sleep() 等最终会导致您的计时器由于您的代码、操作系统等的开销而发生偏移。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-10-17
      • 2019-05-30
      • 2015-08-21
      • 1970-01-01
      • 2019-08-28
      相关资源
      最近更新 更多