उदाहरण के लिए, तरीके:रूबी क्लास विधियां थ्रेड-सुरक्षित हैं? जैसे
class MyClass
self.perform(id)
hash = doSomething(id)
doMoreStuff(hash)
return hash
end
end
मेरी चिंता का विषय है, तो मैं कई MyClass.perform()
बुला धागे है। क्या ऑब्जेक्ट hash
संभावित रूप से किसी अन्य थ्रेड द्वारा ओवरराइट किया जा सकता है? दूसरे शब्दों में, थ्रेड 1 doSomething
पर कॉल करता है और {1 => 1}
का हैश वापस लौटाता है। लेकिन बाद में थ्रेड 2 doSomething
पर कॉल करता है और {2 => 2}
का हैश प्राप्त करता है। अब क्या हुआ? क्या थ्रेड 1 हैश बदल गया है {2 => 2}
?
या प्रत्येक थ्रेड अपने hash
पर काम करता है जिसे कभी अन्य धागे से छुआ नहीं जा सकता है? मान लें doSomething
और doMoreStuff
पहले से ही थ्रेड-सुरक्षित हैं।
यदि यह महत्वपूर्ण है, तो मैं रेल 3.0 का उपयोग कर रहा हूं।
जहां तक मुझे पता है, रेल के साथ, उदाहरण के लिए, वे – macool
नहीं हैं क्या आप समझ सकते हैं कि विधि के बारे में आपके पास क्या थ्रेड-सुरक्षा चिंताएं हैं? –
इसके अलावा, विधि के अंत में 'वापसी' की कोई आवश्यकता नहीं है। यदि आपके पास अंतिम पंक्ति पर 'हैश' है, तो वह वापसी मूल्य होगा। –