2011-11-01 29 views
10

मेरे पास ऐसा एप्लिकेशन है जो होमग्राउन समाधान पर बूस्ट सिग्नल लाइब्रेरीज़ में से किसी एक का उपयोग करने से लाभ उठा सकता है।सिग्नल बनाम सिग्नल 2

एप्लिकेशन बहुप्रचारित है लेकिन सिग्नल प्रोसेसिंग करने वाला हिस्सा सिंगल थ्रेडेड है।

बूस्ट पर Boost.Signals2 को पसंद करने का कोई कारण है। सिग्नल यदि मल्टीथ्रेडिंग कोई मुद्दा नहीं है?

+1

सुनिश्चित करें कि आप पर विचार [libtscb] बनाएँ (http://www.chaoticmind.net/~hcb/projects/libtscb /) साथ ही - इसकी [प्रदर्शन तुलना] (http://www.chaoticmind.net/~hcb/projects/libtscb/doc/index.html#performance) विशेष रूप से उल्लेखनीय हैं। – ildjarn

+0

@ildjarn: दुर्भाग्यवश libtscb को जीसीसी की आवश्यकता है। मुझे बाकी पुस्तकालय के बारे में पता नहीं है, लेकिन परमाणु केवल जीसीसी के लिए लागू किए गए हैं। एक बार विजुअल स्टूडियो को सी ++ 11 'std :: परमाणु' मिलता है, इसे छोटा रूप से पोर्ट किया जा सकता है। –

+0

एक और विकल्प वर्तमान में अंडर-समीक्षा [बूस्ट.एटॉमिक्स] (http://www.chaoticmind.net/~hcb/projects/boost.atomic/doc/index.html) का उपयोग करना है: -] – ildjarn

उत्तर

9

Boost.Signals अब पदावनत है, और Boost.Signals2 बजाय इस्तेमाल किया जाना चाहिए (v1.54 docs देखें)

+3

पर विचार किया जाना चाहिए उस पृष्ठ पर एक महत्वपूर्ण नोट उद्धृत करने के लिए (सुविधा के लिए): "** बूस्ट। सिग्नल को सक्रिय रूप से बनाए रखा नहीं जा रहा है। नए विकास के लिए बूस्ट सिग्नल का उपयोग न करें (इसके बजाय Boost.Signals2 का उपयोग करें)। ** यदि आपके पास मौजूदा बूस्ट सिग्नल-आधारित कोड है, तो यह होगा काम करना जारी रखें, लेकिन बूस्ट सिग्नल में जाने पर विचार करें s2। सिग्नल 2 दस्तावेज में एक पोर्टिंग गाइड है। " – Cornstalks

+0

और ईमानदार होने के लिए, ज्यादातर बार, जब आप एक अच्छी सुविधा का उपयोग करना शुरू करते हैं, तो आप इसे किसी अन्य स्थान पर पहले से वांछित स्थान की तुलना में उपयोग करना चाहते हैं। –

5

मूल रूप से, यदि सभी सिग्नल और स्लॉट एक ही थ्रेड में थे, तो boost.signals बस ठीक था। हालांकि, अब इसे बनाए रखा नहीं जा रहा है - दस्तावेज सभी नए कोड में सिग्नल 2 का उपयोग करने का सुझाव देता है।

+4

सिग्नल 2 में सिग्नल पर अन्य बदलाव हैं, इसलिए इसे किसी भी –

संबंधित मुद्दे