मुझे हाल ही में सटीक अवधि के लिए वर्तमान धागे को सोने की आवश्यकता में आया। मुझे पॉज़िक्स प्लेटफ़ॉर्म पर ऐसा करने के दो तरीकों के बारे में पता है: nanosleep()
का उपयोग करके या boost::this_thread::sleep()
का उपयोग करना।बढ़ावा :: this_thread :: नींद() बनाम नैनोस्लीप()?
किसी अन्य चीज़ से जिज्ञासा से बाहर, मैं सोच रहा था कि दोनों दृष्टिकोणों के बीच मतभेद क्या हैं। क्या परिशुद्धता में कोई अंतर है, और बूस्ट दृष्टिकोण का उपयोग करने के लिए कोई कारण नहीं है?
nanosleep()
दृष्टिकोण:
#include <time.h>
...
struct timespec sleepTime;
struct timespec returnTime;
sleepTime.tv_sec = 0;
sleepTime.tv_nsec = 1000;
nanosleep(&sleepTime, &returnTime);
बूस्ट दृष्टिकोण:
#include <boost/date_time/posix_time/posix_time.hpp>
#include <boost/thread/thread.hpp>
...
boost::this_thread::sleep(boost::posix_time::nanoseconds(1000));
उदाहरण के लिए बस एक छोटा सा नोट: सभी सिस्टम पर 'नैनोसेकंड्स' उपलब्ध नहीं है। 'माइक्रोसॉन्ड' का उपयोग करना अधिक सुरक्षित होगा। – real4x