私は Timer クラスをプログラムしようとしていました (boost にクラスがあることに気づいていませんでした)。
#include <ctime>
#include <iostream>
int main()
{
for(int i = 0; i < 50; ++i)
{
std::cout << std::clock() << " ";
}
return 0;
}
プログラムを実行すると、一連の 0 が返されます。ブースト スレッド スリープ関数を使用してタイミングを少し広げたときにも同様の経験があります (ただし、数秒後には 0 から 10,000 にジャンプし、10,000 を出力し続けます)。
Gentoo Linux を実行しています。これはプラットフォームのことですか?C++のこと?どうしたの?
編集:奇妙なことに、10000 へのジャンプは、ミリ秒ではなく秒数の後に発生します。一度に 1 秒ずつスレッドをスリープさせていたとき、10000 に到達するのに 5 ~ 6 秒かかりました。ただし、正しく理解していれば。スレッドがスリープに費やす時間は、clock() カウントに影響しませんか? (どちらが理にかなっていますか? スリープしているのに、なぜクロックサイクルを実行するのでしょうか?)