最近,我一直在用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.2GHz的處理器。我的謙虛的130線計劃不應該接近50%。
我在問的是如何更好地編寫我的等待函數,以便它只使用最少的資源?謝謝。
我喜歡這個想法,但是我使用的是Windows,我似乎沒有文件。 –
Samuel
2010-11-05 06:09:25
Boost也可以在Windows上使用,您只需安裝庫。 [入門指南](http://www.boost.org/doc/libs/1_44_0/more/getting_started/windows.html)或下載[預編譯版本](http://www.boostpro.com/download/ ) – MOnsDaR 2010-11-05 06:10:14
請記住,在多線程環境中,''boost :: this_thread :: sleep'會爲您的代碼添加一箇中斷點。 http://www.boost.org/doc/libs/1_49_0/doc/html/thread/thread_management.html – 2013-07-18 09:30:49