2013-05-16 6 views
6

सी ++ 11 में इवेंट लूप सिस्टम की मूल संरचना क्या है? प्रमुख तत्व (जैसे संदेश कतार, संदेश प्रेषक, सिग्नल) कैसे कार्यान्वित किए जाते हैं? उदाहरण के लिए, क्या मुझे अभी भी std::queue<Message>, std::mutex और std::condition_variable की आवश्यकता है जैसा मैंने सी ++ 98 + बूस्ट तरीके से किया था? साथ ही, उस समाधान में प्रदर्शन महत्वपूर्ण है जिसे मैं ढूंढ रहा हूं।सी ++ 11 इवेंट लूप बनाने के लिए 11 तरीके

+5

मानक में संदेश कतार जैसी कोई उच्च स्तरीय कक्षाएं नहीं हैं, इसलिए आपको अभी भी अपने द्वारा बताए गए प्रकारों से बाहर निकलना होगा। – juanchopanza

+5

यदि प्रदर्शन महत्वपूर्ण है, लक्ष्य ओएस के मूल निवासी तंत्र के साथ चिपके रहें। उदाहरण के लिए, लिनक्स पर सर्वोत्तम परिणामों के लिए ओएस एक्स, या 'एपोल' को लक्षित करते हुए' kqueue' का उपयोग करें। सी ++ 11 के पास इसके साथ कुछ लेना देना नहीं है। –

+2

यदि आप बूस्ट का उपयोग कर रहे हैं, तो आप Boost.Asio का उपयोग कर सकते हैं। – beerboy

उत्तर

2

इसे वही तरीके से करें जैसा आपने सी ++ 98 में किया होगा। आप कुछ प्लेटफार्म-विशिष्ट चीजों जैसे pthread_t, pthread_mutex, और pthread_cond को मानकीकृत समकक्षों (std :: thread, std :: {recursive _,} {timed _,} mutex, और std :: condition_variable {, _ any}) के साथ प्रतिस्थापित कर सकते हैं, लेकिन मूल डिजाइन एक ही है।

जैसा कि @ बेरबॉय ने उल्लेख किया है, बूस्ट.एएसआईओ शुरू करने के लिए एक अच्छी जगह हो सकती है, भले ही AFAIK इसे सी ++ 11 के लिए अपडेट नहीं किया गया हो।