运行 循环一定时间的最佳方法
Best way to run a loop for certain amount of time
我必须 运行 循环一段时间。我知道以下方法。
get start time;
while(1)
{
getcurrenttime;
if(start time + time to run >= current time)
break;
else
do what ever you want.
}
可以吗?或任何其他更好的方法来做到这一点?
我建议你在循环中引入任何"Thread.Sleep",以防止处理器的使用和能量消耗,提高其他进程和操作系统的性能。如果你想等待一个固定时间,你可以直接使用系统线程睡眠,否则如果你想等待一个未定义的时间,你可以有一个循环,退出条件如最长时间或其他条件表达式,但你必须调整小睡眠的等待时间值。
要100%燃烧就可以了CPU。否则,您应该添加一个库调用,让您的循环花费部分或大部分时间休眠,例如 nanosleep,并将您的延迟调整为适合您的应用程序的粒度。
我必须 运行 循环一段时间。我知道以下方法。
get start time;
while(1)
{
getcurrenttime;
if(start time + time to run >= current time)
break;
else
do what ever you want.
}
可以吗?或任何其他更好的方法来做到这一点?
我建议你在循环中引入任何"Thread.Sleep",以防止处理器的使用和能量消耗,提高其他进程和操作系统的性能。如果你想等待一个固定时间,你可以直接使用系统线程睡眠,否则如果你想等待一个未定义的时间,你可以有一个循环,退出条件如最长时间或其他条件表达式,但你必须调整小睡眠的等待时间值。
要100%燃烧就可以了CPU。否则,您应该添加一个库调用,让您的循环花费部分或大部分时间休眠,例如 nanosleep,并将您的延迟调整为适合您的应用程序的粒度。