लिखने समारोह से अधिक थ्रेड से कॉल का उपयोग कर GNU सी में लिखें समारोह का उपयोग करने के लिए है? क्या हम उनके बीच एक सिंक्रनाइज़ेशन जोड़ना चाहते हैं? यह इधर-उधर समस्याएं पैदा करेंगे आवेदन की तरह लिखने में देरी/लिनक्स Redhat वातावरण परइसे सुरक्षित एक ही सॉकेट</p> <p>यह सुरक्षित है के लिए एक से अधिक थ्रेड
हम जीएनयू सी ++ पुस्तकालयों उपयोग कर रहे हैं आवेदन परत को नेटवर्क परत जीसीसी 4 से पढ़ा
यह एक सर्वर साइड प्रक्रिया जहां है हो रही है वहाँ सर्वर & ग्राहक सर्वर & क्लाइंट के बीच केवल 1 सॉकेट कनेक्टिविटी है पर 2 diffent मशीनें डाटा हैं सर्वर
समस्या को क्लाइंट क्लाइंट के लिए सर्वर से भेजे जाने वाले है 1-जब सर्वर (क्लाइंट साइड को डेटा भेजने से अधिक थ्रेड Dat लिखें क्लाइंट साइड के माध्यम से एक ही सॉकेट के माध्यम से) लेकिन कुछ धागे से डेटा राइटन क्लाइंट साइड पर नहीं जाते हैं, यह नेटवर्क पर भी नहीं जाता है, उसी मशीन के लेयर (टीसीपीडम्प में वह डेटा नहीं है)
समस्या 2-जब क्लाइंट सर्वर डेटा पर डेटा भेजता है क्लाइंट द्वारा सर्वर के टीसीपीडम्प में सर्वर सर्वर के लिए प्राप्त नहीं किया जाता है जो एक थ्रेड से सॉकेट से पढ़ रहा है "0" & लूप में "चयन करें" फ़ंक्शन
हम इन समस्याओं को हल करने के पैटर्न की पहचान करने में असमर्थ थे, हमें लगता है कि यह बहुत खुशी है जब कई सारे धागे समान सॉकेट पर लिख रहे हैं हम सिंक्रनाइज़ेशन लिखने वाले फ़ंक्शन को सिंक्रनाइज़ेशन नहीं कर रहे हैं उम्मीद करते हैं कि ओएस सिंक्रनाइज़ेशन
012 को संभालने वाला है
यह इस अर्थ में "सुरक्षित" है कि आपका प्रोग्राम अच्छी तरह से गठित है, लेकिन आपके सॉकेट पर जो परिणाम आप देखते हैं वह शायद नहीं हो सकता है। –
@ केरेकस्क: यह एक अजीब टिप्पणी है। किसी भी थ्रेड-असुरक्षित प्रोग्राम को उस अर्थ में "सुरक्षित" कहा जा सकता है, नहीं? –
@NedBatchelder: निश्चित रूप से नहीं। उदाहरण के लिए, एक फ़ंक्शन जो अपने आंतरिक राज्य-रखरखाव के लिए स्थिर बफर पर निर्भर करता है, वह * थ्रेड-सुरक्षित नहीं है, और एक प्रोग्राम जो इसे कई बार समेकित करता है, केवल बीमार है। इसके विपरीत, एक प्रोग्राम जो 'लिखने' को समवर्ती रूप से कॉल करता है वह स्वचालित रूप से बीमार परिभाषित नहीं होता है। –