Jawaban terbaru untuk C ++ 11:
Gunakan sleep_fordan sleep_untilfungsi:
#include <chrono>
#include <thread>
int main() {
using namespace std::this_thread;
using namespace std::chrono;
sleep_for(nanoseconds(10));
sleep_until(system_clock::now() + seconds(1));
}
Dengan fungsi ini tidak ada lagi kebutuhan untuk terus menambahkan fungsi baru untuk resolusi yang lebih baik: sleep, usleep, nanosleep, dllsleep_for dan sleep_untilmerupakan fungsi template yang dapat menerima nilai-nilai dari setiap resolusi melalui chronojenis; jam, detik, femtoseconds, dll.
Di C ++ 14 Anda dapat lebih menyederhanakan kode dengan sufiks literal untuk nanosecondsdan seconds:
#include <chrono>
#include <thread>
int main() {
using namespace std::this_thread;
using namespace std::chrono_literals;
using std::chrono::system_clock;
sleep_for(10ns);
sleep_until(system_clock::now() + 1s);
}
Perhatikan bahwa durasi aktual tidur bergantung pada penerapannya: Anda dapat meminta tidur selama 10 nanodetik, tetapi penerapan mungkin akan berakhir dalam mode tidur selama satu milidetik, jika itu yang terpendek yang dapat dilakukan.