gpt4 book ai didi

c - 每 x 秒运行一次函数

转载 作者:行者123 更新时间:2023-11-30 18:40:34 24 4
gpt4 key购买 nike

我在每 x 秒运行一次函数时遇到问题。我的应用程序:

  1. 创建、绑定(bind)套接字,

  2. 监听该套接字,

  3. 接受所有传入连接并为每个连接创建一个新线程,

  4. 发送和接收一些数据,

  5. 现在循环应该每 1.5 秒、5 秒和 10 秒发送一次数据。

我尝试这样做(其中“时间”应该是以毫秒/纳秒为单位的时间):

while(true)
{
if(fmod(time, 1.5)==0)
{
/*sending data*/
}
if(fmod(time, 5)==0)
{
/*sending data*/
}
if(fmod(time, 10)==0)
{
/*sending data*/
}
}

当我使用time()时,数据每秒发送多次,因为time()的精度为一秒。你能给我建议我需要使用什么函数来获得高精度的时间吗?

我使用Linux

问题2:当线程运行时,如何结束程序(也许使用任意键)?

最佳答案

1) 那么,要拥有更高分辨率的计时器,您可以使用 clock_gettime ,获取实时时钟的例子可以参见 here .

2)我想说这不是一个很好的设计,为什么不使用一个具有恒定间隔的计时器,以 1.5 秒、5 秒和 10 秒的间隔重新安排并执行发送?这样您就不必阻塞主线程,并且可以等待其中的键盘输入或执行任何您需要等待终止的操作。

关于c - 每 x 秒运行一次函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25762399/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com