作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在每 x 秒运行一次函数时遇到问题。我的应用程序:
创建、绑定(bind)套接字,
监听该套接字,
接受所有传入连接并为每个连接创建一个新线程,
发送和接收一些数据,
现在循环应该每 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/
我是一名优秀的程序员,十分优秀!