c – 需要更好的等待解决方案
发布时间:2020-12-16 06:46:44 所属栏目:百科 来源:网络整理
导读:最近我一直在用C编写一个程序来ping三个不同的网站,然后根据通过或失败,它会在再次尝试之前等待5分钟或30秒. 目前我一直在使用ctime库和以下函数来处理我的等待.但是,根据我的CPU仪表,这是一个不可接受的解决方案. void wait (int seconds){ clock_t endwait
最近我一直在用C编写一个程序来ping三个不同的网站,然后根据通过或失败,它会在再次尝试之前等待5分钟或30秒.
目前我一直在使用ctime库和以下函数来处理我的等待.但是,根据我的CPU仪表,这是一个不可接受的解决方案. void wait (int seconds) { clock_t endwait; endwait = clock () + seconds * CLOCKS_PER_SEC; while (clock () < endwait) {} } 这个解决方案不可接受的原因是因为根据我的CPU仪表,程序在等待时运行在我CPU的48%到50%之间.我有一个Athlon 64 x2 1.2 GHz处理器.我的适度130线计划甚至不可能接近50%. 如何更好地编写我的等待函数,以便它只使用最少的资源? 解决方法
为了保持便携性,你可以使用
Boost::Thread睡觉:
#include <boost/thread/thread.hpp> int main() { //waits 2 seconds boost::this_thread::sleep( boost::posix_time::seconds(1) ); boost::this_thread::sleep( boost::posix_time::milliseconds(1000) ); return 0; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |