में अभिनेताओं की थ्रेडेनेस को समझना मुझे बताया गया है कि (स्कैला) अभिनेता वास्तव में एक ही समय में दो संचालन नहीं करते हैं, जो बताता है कि अधिनियम (या प्रतिक्रिया? या प्राप्त?) विधि मूल रूप से सिंक्रनाइज़ होती है। मुझे पता है कि एक कार्य विधि में एक लंबे ऑपरेशन को अवरुद्ध करने का कारण हो सकता है, और मुझे लगता है कि संदेश कतार तक पहुंच को किसी भी तरह से सिंक्रनाइज़ किया जाना चाहिए ... लेकिन ...स्कैला
क्या सुझाव दिया गया था कि एक अभिनेता संदेश प्राप्त कर रहा है यह एक आंतरिक काउंटर बढ़ाने के लिए काउंटर को थ्रेडसेफ तरीके से बढ़ाएगा। कि दो अपडेट संदेश एक साथ संसाधित नहीं किए जाएंगे, और इसलिए कोई भी दो संदेश काउंटर को एक ही समय में अपडेट करने का प्रयास नहीं कर सकता था।
एक अभिनेता में एक काउंटर विशेषता "साझा स्थिति" की तरह लगता है।
क्या यह वाकई सच है कि ऐसा ऑपरेशन पूरी तरह से थ्रेडसेफ होगा? यदि हां, तो अभिनेता कुछ कुशल तरीके से एकाधिक कोर मशीनों का उपयोग कैसे करता है? एक अभिनेता बहु थ्रेड कैसे किया जाता है?
यदि नहीं, तो कुछ सिंक्रनाइज़/अस्थिर चर की आवश्यकता के बिना थ्रेडसेफ तरीके से संदेशों को गिनने के लिए उपयुक्त आदर्श तरीका क्या है?
यह एक महान स्पष्टीकरण है, धन्यवाद! – Brian
अच्छा जवाब। मैं यह जोड़ूंगा कि एक अभिनेता की प्रतिक्रियाएं अलग-अलग धागे पर चल सकती हैं (और इस प्रकार 'सामान्य रूप से स्मृति मेसेज मुद्दों के अधीन रहेंगी), आपको वास्तव में अभिनेता के राज्य तक पहुंच को सिंक्रनाइज़ करने की आवश्यकता नहीं है। ऐसा इसलिए है क्योंकि एक अभिनेता को निष्पादित करने से पहले अभिनेता ढांचा पहले से ही ऐसा करता है। Http://stackoverflow.com/questions/1031167/should-my-scala-actors-properties-be-marked-volatile –
देखें कि यह मदद करता है। रेजीस: धन्यवाद, टेक्स्ट को और सटीक होने के लिए अपडेट किया गया। – ron