2010-08-17 28 views
6

के साथ महत्वपूर्ण अनुभाग को बदलें यदि एप्लिकेशन को Windows Vista या बाद में लक्षित किया गया है, तो क्या हम SRW locks के साथ सभी critical sections को प्रतिस्थापित कर सकते हैं? चूंकि महत्वपूर्ण अनुभाग परस्पर अनन्य है, उपयोग के लिए यह विशेष मोड में एसआरडब्ल्यू ताले के बराबर है, है ना? एमएसडीएन के अनुसार, एसआरडब्ल्यू को गति और स्थान दोनों के लिए अनुकूलित किया गया है। क्या ऐसा करने में कोई कमी है? मुझे यकीन नहीं है कि सीएस और एसआरडब्ल्यू माइक्रोसॉफ्ट द्वारा आंतरिक रूप से कैसे कार्यान्वित किए जाते हैं।एसआरडब्ल्यू लॉक

धन्यवाद!

उत्तर

7

देखें जो डफी की पुस्तक "विंडोज पर समवर्ती प्रोग्रामिंग", स्नातकोत्तर 289

अपने प्रश्न का संक्षिप्त उत्तर "लगभग" है। एसआरडब्ल्यूएल के लिए अलग-अलग CRITICAL_SECTION के अधिग्रहण के साथ अर्थशास्त्र हैं। यदि आपके प्रोग्राम ने Win32 के महत्वपूर्ण वर्गों की इन विशेषताओं का लाभ उठाया है, तो आप आसानी से एसआरडब्ल्यूएल पर थोक स्विच नहीं कर सकते हैं। हालांकि, आप एक एसआरडब्लूएल को एक आवरण में सीएस प्रदान करने के लिए एक रैपर में लपेट सकते हैं, लेकिन ऐसा करने में सूक्ष्मता का एक गुच्छा है, इसलिए यदि आप इस तरह के व्यवहार के आधार पर हैं तो आप सीएस के चिपके रहने से बेहतर हैं।

Kenny Kerr's article दोनों आंतरिक रूप से कार्यान्वित किए जाने के बारे में कुछ बताते हैं।

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