2010-07-22 10 views
6

मैं निम्नलिखित पर्ल कोड है:एक चर को एक सरणी पर थ्रेडसेफ ऑपरेशन पर धक्का दे रहा है?

push(@myArray, $myValue); 

आपरेशन परमाणु है, या मैं, ताले का उपयोग करने की आवश्यकता होगी एक से अधिक थ्रेड कई धागे पर यह एक ही आपरेशन प्रदर्शन किया जाएगा तो क्या होगा?

+0

लगता है कि आप एक थ्रेड :: कतार वस्तु चाहते हैं। – MkV

+0

आपका मतलब क्या है 'एक ही ऑपरेशन'? @myArray साझा किया गया है? –

उत्तर

2

पर्ल में अधिकांश कार्यों की थ्रेड सुरक्षा उनके अंतर्निहित सी रूटीन पर निर्भर करती है, और push जैसे बिल्ट-इन्स के मामले में थ्रेड सुरक्षा का कोई उल्लेख नहीं है, इसलिए आपको यह मानना ​​चाहिए कि यह नहीं है।

perlthrtut मैन पेज, विशेष रूप से "बेसिक सेमफोरस" शीर्षक वाला अनुभाग देखें। एक सेमफोर का उपयोग करके आप कोड के मनमाना वर्गों में पारस्परिक बहिष्करण को लागू कर सकते हैं।

संबंधित मुद्दे