मैं वर्तमान में बढ़ावा थ्रेड के लिए एक छोटा सा आवरण वर्ग पर काम कर रहा हूँ, लेकिन मैं वास्तव में न कैसे नींद समारोह काम करता हो, यह मैं अब तक क्या मिला है है:बूस्ट :: थ्रेड नींद() क्या करता है?
BaseThread::BaseThread(){
thread = boost::thread();
bIsActive = true;
}
BaseThread::~BaseThread(){
join();
}
void BaseThread::join(){
thread.join();
}
void BaseThread::sleep(uint32 _msecs){
if(bIsActive)
boost::this_thread::sleep(boost::posix_time::milliseconds(_msecs));
}
यह वह जगह है मैं कैसे लागू किया यह अब तक लेकिन मैं वास्तव में समझ नहीं पा रहा हूं कि यह स्थिर कैसे है :: नींद विधि जानता है कि कौन सा धागा सोना है उदाहरण के लिए मेरे थ्रेड रैपर के कई उदाहरण सक्रिय हैं। क्या इसे लागू करने का यह सही तरीका है?
चेक कोड की तरह क्या? बाधा भी एक अच्छा तरीका प्रतीत होता है। – user240137
"चेक कोड" से मेरा क्या मतलब है कि दिए गए थ्रेड द्वारा निष्पादित कोड में, कहीं भी 'अगर' होता है जो जांचता है कि उसे सोया जाना चाहिए और यदि आवश्यक हो तो इसे करें। उदाहरण के लिए यदि आपका धागा एक बड़े लूप के साथ एक फ़ंक्शन चलाता है, तो जांच करें कि क्या इसे नींद की आवश्यकता है (उदाहरण के लिए अपने वर्तमान कोड द्वारा बूलियन सेट को सेट करके) लूप के पुनरावृत्ति के प्रत्येक छोर पर पर्याप्त हो सकता है। लेकिन आपके मामले में आप अपने थ्रेड कोड पर घुसपैठ नहीं करना चाहते हैं, इसलिए बाधा वास्तव में बेहतर विकल्प की तरह लगती है। – Klaim