क्या मैं सही हूं कि एक विधि को दो बार निष्पादित करने से रोकने का एकमात्र तरीका lock
कथन का उपयोग कर रहा है?एक ही समय में विभिन्न धागे से निष्पादित करने से विधि को रोकें
private object lockMethod = new object();
public void Method() {
lock (lockMethod) {
// work
}
}
public void FromThread1() {
Method();
}
public void FromThread2() {
Method();
}
बेशक
मैं भी MethodImpl(MethodImplOptions.Synchronized)
क्या लगभग एक ही हो सकता है का उपयोग कर सकते हैं।
क्या अन्य तकनीकें हैं?
मुझे थोड़ा चिंता है कि आप _data_ को लॉक करने के बजाय _method_ लॉक करने का प्रयास कर रहे हैं - आप किस समस्या को हल करने की कोशिश कर रहे हैं? – sarnold
चूंकि आप कोई 'स्थिर' विधियां नहीं दिखाते हैं, तो क्या आप वास्तव में एक ही उदाहरण के लिए दो बार एक विधि को निष्पादित करने से रोकने की कोशिश कर रहे हैं? या एक ही समय में एक ही उदाहरण के लिए किसी भी दो तरीकों? – HABO
विधि इतनी छोटी है कि मेरी स्थिति में विधि को लॉक करना = डेटा लॉक करना – javapowered