#include "stdafx.h"
#include <iostream>
#include <chrono>
#include <thread>
int main()
{
using namespace std::chrono_literals;
std::cout << "Hello waiter\n" << std::flush;
auto start = std::chrono::high_resolution_clock::now();
//std::this_thread::sleep_for(2s);
std::this_thread::sleep_for(std::chrono::seconds(2));
auto end = std::chrono::high_resolution_clock::now();
std::chrono::duration<double, std::milli> elapsed = end - start;
std::cout << "Waited " << elapsed.count() << " ms\n";
return 0;
}
ブロックに対する現在のスレッドの実行 に少なくとも 指定されました sleep_duration
。
この機能は、より長いためにブロックすることがあり sleep_duration
スケジューリングやリソースの競合遅延に起因します。
標準では、安定したクロックが時間を測定するために使用されることをお勧めします。実装が代わりにシステムクロックを使用している場合は、待機時間は、クロックの調整に敏感であることがあります。
少なくとも指定sleep_duration内の現在の実行スレッドを防ぎます。
スケジューリングやリソースの競合遅延に、この機能はsleep_durationより長くブロックされることがあります。
標準では、継続時間を測定するために、安定したクロックを使用することをお勧めします。システムクロックの代わりに実装された場合、レイテンシはまた、クロック調整に敏感であることがあります。