मैं सीबनाम joinable POSIX अलग धागे
में & में शामिल होने के धागे बनाने जब मैं सही शुरू से, एक धागे के रूप अलग बनाना चाहिए के लिए pthread लाइब्रेरी का उपयोग किया गया है? क्या यह किसी भी प्रदर्शन लाभ बनाम एक जुड़ने योग्य धागा प्रदान करता है?
क्या यह एक joinable (डिफ़ॉल्ट रूप से) थ्रेड पर pthread_join() नहीं करना कानूनी है? या क्या ऐसा धागा हमेशा pathread_exit() ing से पहले detach() फ़ंक्शन का उपयोग करना चाहिए?
संदेह: पृथक धागे के मामले में, क्या होगा यदि अलग धागा अलग थ्रेड समाप्त होने से पहले निष्पादित हो जाता है? मुझे लगता है कि यह सभी धागे को मारने की प्रक्रिया को समाप्त कर देगा। तो किस परिदृश्य में पृथक धागे का उपयोग किया जाता है क्योंकि मुझे यह सुनिश्चित करना चाहिए कि अलग थ्रेड निष्पादन समाप्त हो गया है? – Ajax
@Ajax: अनुभवजन्य, यदि मुख्य धागा खत्म होता है, तो प्रोग्राम निकलता है और धागे समाप्त हो जाते हैं। यह, कम से कम, मैक ओएस एक्स (10.10.1 योसमेट) पर व्यवहार प्रतीत होता है। मुझे POSIX दस्तावेज़ में कुछ भी नहीं मिल रहा है जो इंगित करता है कि अगर अन्यथा बाहर निकलें (''' '' 'निकालें()' ''exit()' या '_Exit()' कहा जाता है। यदि मुख्य धागा 'pthread_exit()' करता है, तो अन्य धागे को पूरा करने का मौका मिलता है। –
एक अलग नोट पर: जब आपके पास पहले से ही कुछ अन्य मतदान तंत्र है तो डिटेक्टेबल थ्रेड अच्छे होते हैं; आप परिणाम राज्य की जांच के लिए उसी मतदान तंत्र का उपयोग कर सकते हैं, और इसलिए पता चले कि धागा पूरा हो गया है या नहीं। यह एक मामला है, "क्या यह तैयार है? यदि हां, तो इसका इस्तेमाल करें।" –