कार्य पर काम कर रहे कई धागे हैं। एक बार थ्रेड सफल होने के बाद सभी धागे को रद्द कर दिया जाना चाहिए, क्योंकि काम पूरा हो गया है। एक धागा सफलतापूर्वक समाप्त हो जाने पर मैं अन्य धागे को कैसे रद्द कर सकता हूं? pthread_cancel()
कौन कॉल करेगा और सफल धागा main
या थ्रेड जो इसे उत्पन्न करता है (वापसी मूल्य?) कैसे बताएगा।एक सामान्य काम के बाद POSIX धागा रद्द करें
अद्यतन
मैं बस exit
कॉल करने के लिए के रूप में मैं अब कुछ नियंत्रण चाहते हैं नहीं करना चाहती। उदाहरण के लिए धागे रद्द होने के बाद, मैं सफल थ्रेड द्वारा पाए गए परिणाम को संसाधित करूंगा और संभवतः कुछ और प्रोसेसिंग कर सकता हूं, या बस प्रक्रिया को कुछ और काम के लिए चलाना चाहता हूं।
यदि आप सभी के द्वारा किए गए काम को फेंकने जा रहे हैं, तो आपको इस कार्य के लिए कई धागे की आवश्यकता क्यों है? बस एक धागे में एक बार काम करते हैं। – zwol
कहता है, मेरे पास रैखिक रूप से खोजने के लिए एक बड़ी सूची है, मैं अलग-अलग धागे में सूचियों के सेगमेंट पास कर दूंगा, और एक बार एक मैच मिल जाए, रिटर्न। अन्य रद्द कर दिए गए हैं। – phoxis
मुझे लगता है कि एक संदर्भ में समझ में आता है जहां एक ब्रूट-फोर्स सर्च एकमात्र विकल्प है, लेकिन यदि आपके डेटा में कोई संरचना है, तो बेहतर एल्गोरिदम हैं। – zwol