C ++ 11 के लिए एक अद्यतन उत्तर:
sleep_for
और sleep_until
कार्यों का उपयोग करें :
#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));
}
इन कार्यों के साथ वहाँ नहीं रह गया है एक की जरूरत लगातार बेहतर समाधान के लिए नए कार्यों को जोड़ने में है: sleep
, usleep
, nanosleep
, आदि sleep_for
और sleep_until
टेम्पलेट कार्यों कि माध्यम से किसी भी संकल्प के मूल्यों को स्वीकार कर सकते हैं chrono
प्रकार; घंटे, सेकंड, फेमटोसेकंड, आदि।
C ++ में 14 आप आगे के लिए शाब्दिक प्रत्यय के साथ कोड को आसान बनाने में कर सकते हैं nanoseconds
और 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);
}
ध्यान दें कि एक नींद की वास्तविक अवधि कार्यान्वयन पर निर्भर करती है: आप 10 नैनोसेकंड के लिए सोने के लिए कह सकते हैं, लेकिन एक कार्यान्वयन इसके बजाय एक मिलीसेकंड के लिए नींद खत्म हो सकता है, अगर यह सबसे कम हो सकता है।