2008-10-20 9 views

उत्तर

9

इस साइट के अनुसार: http://en.csharp-online.net/CSharp_FAQ:_What_is_the_difference_between_CSharp_lock_and_Java_synchronized, सी # lock और जावा synchronized कोड ब्लॉक, "शब्दार्थतः पहचान" हैं, जबकि तरीकों के लिए, जावा synchronized का उपयोग करता है सी # एक विशेषता का उपयोग करता है, जबकि: [MethodImpl(MethodImplOptions.Synchronized)]

+0

नहीं, "अर्थात् समान रूप से" मुझे क्या सुनने की ज़रूरत है ... और क्या कोई "गॉथचास" था, लेकिन वह पृष्ठ प्रतीत होता है बहुत स्पष्ट। धन्यवाद। Stackoverflow मेरा नया Google है। ;) – Epaga

5

एक दिलचस्प अंतर लिंक Keeg द्वारा पोस्ट की में शामिल नहीं: जहाँ तक मुझे पता है हूँ, कोई बराबर विधि नेट के Monitor.Enter और Monitor.Exit, जो सी # lock बयान करने पर निर्भर करता लिए जावा में कहता है। इसका मतलब है कि आप Monitor.TryEnter के बराबर नहीं कर सकते हैं - हालांकि निश्चित रूप से java.util.concurrent.locks पैकेज (1.5 के रूप में) में कई प्रकार के ताले हैं जिनमें अधिक सुविधाएं उपलब्ध हैं।

-1

मैं जावा आपको अपने स्वामित्व वाले सार्वजनिक प्रकारों को लॉक करने की चिंता करने की आवश्यकता नहीं है।

नेट में, आप have to

अपडेट किया गया: इस प्रकार है कि आप ही के लिए है। सार्वजनिक प्रकारों पर लॉक करना जो आपके पास नहीं है, किसी भी भाषा में खराब है :)

+2

नहीं, जावा में भी सार्वजनिक संदर्भों को लॉक करना अभी भी एक बुरा विचार है। आपको क्या लगता है कि जावा में ठीक है? –

+0

एक दिलचस्प लिंक होने पर, यह पूरी तरह से (और कहा गया है) सार्वजनिक प्रकारों को लॉक करने के मुद्दे पर चर्चा नहीं करता है। मैं कौन सा मानता हूं कि आपको नहीं करना चाहिए ... यह एक शर्म की बात है कि कैसे [MethodImpl] यह करता है ... –

+1

कुछ सार्वजनिक पर लॉक करें और एक बेवकूफ के लिए भी एक डेडलॉकिंग लॉक डालने का इंतजार करें। –

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