दिलचस्प पोस्ट
डायलॉग्रेग्मेंट का उपयोग करके तिथि पिक्चर से तिथि प्राप्त करें रीसाइक्लियर दृश्य / गतिविधियों के बीच राज्य बहाल / स्टोर Google एंड्रॉइड यूएसबी चालक और एडीबी php एक स्थान के साथ कई स्थान की जगह जीआईटी के साथ बड़ी बाइनरी फाइलें प्रबंधित करना मैं सी का उपयोग कर यूनिक्स पर एक फ़ाइल की प्रतिलिपि कैसे कर सकता हूं? मैं एक जावा एसक्यूएल। रिसटसैट का आकार कैसे प्राप्त करूं? MySQL में एक पूर्णांक अनुक्रम उत्पन्न करता है प्रतिबिंब के माध्यम से वैकल्पिक पैरामीटर के साथ तरीकों को शामिल करना कैसे जांचने के लिए कि mysql डेटाबेस मौजूद है पंडों / अजगर में डेटाफ्रेम में दो कॉलम जोड़ें मैं कैसे जांच सकता हूँ कि जावास्क्रिप्ट चर फ़ंक्शन प्रकार है? स्ट्रिंग सरणी में स्ट्रिंग में स्ट्रिंग की जांच करने के लिए C # का उपयोग करना मैं कैसे जांच सकता हूं कि एक दो-आयामी NumPy सरणी में इसके अंदर मानों का एक विशिष्ट पैटर्न है? मॉलोक के साथ आवंटित सरणी प्रकार और सरणी के बीच अंतर

समान गर्तिका पर समानांतर कॉल / recv भेजना मान्य हैं?

  1. क्या हम एक धाे से दूसरे को बुलाते हैं और उसी सॉकेट पर दूसरे को बुला सकते हैं?
  2. क्या हम एक ही गर्तिका पर अलग-अलग थ्रेड्स से समान रूप से एकाधिक भेज सकते हैं?

मुझे पता है कि एक अच्छा डिजाइन इस से बचना चाहिए, लेकिन मैं यह स्पष्ट नहीं कर रहा हूं कि ये सिस्टम एपीआई कैसे व्यवहार करेंगे। मैं इसके लिए भी अच्छे दस्तावेज ढूंढने में असमर्थ हूं।

दिशा में कोई भी संकेत उपयोगी होगा।

वेब के समाधान से एकत्रित समाधान "समान गर्तिका पर समानांतर कॉल / recv भेजना मान्य हैं?"

पीओएसआईआईएसएक्स ने अणु संचालन के रूप में भेजे जाने / आरएवीवी को परिभाषित किया है, तो मान लें कि आप पॉसिक्स भेज / आरईसी के बारे में बात कर रहे हैं, हाँ, आप उन्हें कई थ्रेड्स से एक साथ कॉल कर सकते हैं और चीजें काम करेंगे।

इसका जरूरी नहीं मतलब है कि उन्हें समानांतर में निष्पादित किया जाएगा – एकाधिक भेजे जाने के मामले में, दूसरी संभावना है कि पहले पूर्ण होने तक ब्लॉक हो जाएगा। संभवतः आपको यह बहुत ज्यादा ध्यान नहीं दिया जाएगा, क्योंकि एक बार एक बार उसके डाटा को सॉकेट बफर में डाल दिया जाता है।

यदि आप SOCK_STREAM सॉकेट्स का उपयोग कर रहे हैं, तो काम करने की कोशिश में एक समानांतर कम होने की संभावना कम है क्योंकि send / rec ने संदेश के केवल एक भाग को भेज या प्राप्त कर सकते हैं, जिसका अर्थ है कि चीजें अलग हो सकती हैं।

ब्लॉकिंग को SOCK_STREAM सॉकेट पर ब्लॉक करना / ब्लॉक केवल जब तक वे कम से कम 1 बाइट भेजते हैं या ब्लॉक नहीं करते हैं, इसलिए अवरुद्ध और गैर-अवरोधन के बीच का अंतर उपयोगी नहीं है।

सॉकेट डिस्क्रिप्टर प्रक्रिया से जुड़ा है, न कि किसी विशिष्ट थ्रेड के लिए। इसलिए, अलग-अलग धागे में एक ही सॉकेट से / भेजने / प्राप्त करने के लिए संभव है, ओएस सिंक्रनाइज़ेशन को संभाल देगा।

हालांकि, अगर भेजने / प्राप्त करने का आदेश अर्थपूर्ण रूप से महत्वपूर्ण है, तो आप खुद (क्रमशः आपके कोड) को विभिन्न थ्रेड्स में ऑपरेशन के बीच उचित अनुक्रमण सुनिश्चित करना है – जैसा कि हमेशा धागे के साथ होता है

मुझे नहीं पता कि समानांतर में कैसे प्राप्त करना संभवतः कुछ भी हासिल कर सकता है यदि आपके पास 3 बाइट्स संदेश है, तो 1 धागा 1 2 बाइट और दूसरा दूसरा बाइट प्राप्त कर सकता है, लेकिन आपके पास यह कहने का कोई तरीका नहीं है कि कौन सा था जब तक आपके संदेश केवल एक बाइट लंबा नहीं होते, तब तक कोई रास्ता नहीं है कि आप मज़बूती से प्राप्त होने वाले कई थ्रेड्स के साथ कुछ भी काम कर सकते हैं।

यदि आप एक ही कॉल में पूरे संदेश को भेजते हैं, तो एकाधिक भेज सकते हैं, लेकिन मुझे यकीन नहीं है। यह संभव है कि कोई दूसरे को ओवरराइट कर सकता है। निश्चित रूप से ऐसा करने के लिए कोई भी प्रदर्शन लाभ नहीं होगा

यदि एकाधिक सूत्र को भेजने की आवश्यकता है, तो आपको एक सिंक्रनाइज़ किए गए संदेश कतार को लागू करना चाहिए। एक धागा है जो वास्तविक प्रेषण करता है जो कि कतार से संदेश पढ़ता है और अन्य थ्रेड्स पूरे संदेश को एन्ज्यू करते हैं। वही काम प्राप्त करने के लिए काम करेगा, लेकिन प्राप्त थ्रेड को संदेशों के प्रारूप को जानना होगा, ताकि ये उन्हें ठीक से डिसेरीलाइज कर सके।