2010-09-14 12 views
5

में असीमित थ्रेड्स मुझे आश्चर्य है कि मैं मानक सी ++ में एसिंक्रोनस कॉल को कैसे कार्यान्वित कर सकता हूं।मानक सी ++

मेरे पास एक छवि/वीडियो प्रसंस्करण प्रोग्राम है और मैं एक और फ़ंक्शन/फीचर जोड़ना चाहता हूं लेकिन मैं इसे किसी अन्य थ्रेड में चलाने या मूल थ्रेड पर असीमित रूप से चलाने के लिए चाहता हूं।

मैं इस नए धागे में कुछ हुआ जब मैं मुख्य धागे को सूचित करना चाहता हूं। (यह हमेशा नहीं होता है और इस वजह से कोई भी कारण नहीं है कि मुख्य धागे को इस नई प्रक्रिया को समाप्त करने के लिए इंतजार करना चाहिए। इसलिए मैं एक एसिंक्रोनस कॉल पसंद करता हूं, अगर यह मल्टीथ्रेड प्रोग्रामिंग से आसान है)

मुझे उम्मीद है कि मैं सही में हूं पथ।

अग्रिम धन्यवाद।

इग्नासिओ।

अद्यतन: वर्तमान में मैं अभी तक किसी भी थ्रेड लाइब्रेरी का उपयोग नहीं कर रहा हूं क्योंकि अब तक मुझे इसकी आवश्यकता नहीं है। मैं बूस्ट में सोच रहा था ... क्या यह एक अच्छा विचार है? मुझे कहां से शुरू करना चाहिए यदि मैं कुछ एसिंक्रोनस कॉल करना चाहता हूं?

+3

वर्तमान मानक या सी ++ 0x? वर्तमान मानक में थ्रेड के लिए समर्थन नहीं है, और उत्तर पसंद की लाइब्रेरी के मामले में होना चाहिए। –

+1

यदि आप वायदा के लिए एक अच्छा सी ++ इंटरफ़ेस वाला पोर्टेबल थ्रेड लाइब्रेरी चाहते हैं, तो बूस्ट एक अच्छी पसंद है। –

उत्तर

6

वर्तमान सी ++ मानक ऐसी चीज को परिभाषित नहीं करता है, लेकिन सी ++ 0x करता है। इससे कुछ विकल्प निकलते हैं। सबसे स्पष्ट रूप से वर्तमान कार्यान्वयन का उपयोग करना है जिसमें सी ++ future वर्ग (और रिश्तेदार) शामिल हैं। ऐसा लगता है कि आप जिस चीज की तलाश कर रहे हैं वह बिल्कुल ठीक है। आपके द्वारा उपयोग किए जा रहे कंपाइलर के आधार पर, समर्थन पहले से ही पैक किया जा सकता है (उदाहरण के लिए, मेरा मानना ​​है कि यह आमतौर पर जीसीसी 4.5 में शामिल है), या आप बूस्ट संस्करण का उपयोग करने की आवश्यकता हो सकती है (हालांकि मुझे विश्वास नहीं है कि यह आधिकारिक का हिस्सा है बूस्ट रिलीज - आपको वॉल्ट में देखने की ज़रूरत है)।

अन्यथा, आप थ्रेड पूल को फैलाने और इसे एक कार्य सबमिट करने के साथ अपने आप कुछ कर सकते हैं। यदि आप निर्णय लेते हैं, तो मेरी सलाह future के लिए जितना संभव हो सके मानक इंटरफ़ेस का पालन करना होगा; यह लगभग अपरिहार्य है कि किसी बिंदु पर आपके पास वायदा उपलब्ध होगा, और शायद अपने स्वयं के संस्करण को बनाए रखने के बजाय उनका उपयोग करना पसंद करते हैं।

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