Objective-C से @synchronized का Swift में समतुल्य: थ्रेड्स का सही सिंक्रोनाइज़ेशन
सभी को नमस्ते! मैंने हाल ही में Objective-C से Swift पर स्विच किया है और अलग-अलग थ्रेड्स से साझा डेटा तक पहुँच को सिंक्रोनाइज़ करने की समस्या का सामना किया। Objective-C में मैं सरल कंस्ट्रक्शन का उपयोग करता था:
```objc
@synchronized(self) {
// क्रिटिकल सेक्शन
self.someProperty = newValue;
}
```
यह गारंटी देता था कि केवल एक थ्रेड एक समय में ब्लॉक के अंदर कोड को निष्पादित करे। Swift में ऐसा कोई सिंटैक्स नहीं है। मुझे पता है कि Swift में GCD (Grand Central Dispatch) है, लेकिन मुझे यकीन नहीं है कि सिंक्रोनाइज़ेशन को सही तरीके से कैसे व्यवस्थित किया जाए।
समस्या: मेरे पास एक कैश क्लास है, जिसे कई थ्रेड्स एक्सेस करते हैं। यहाँ एक सरलीकृत संस्करण है:
```swift
class Cache {
private var storage: [String: Any] = [:]
func set(value: Any, forKey key: String) {
storage[key] = value
}
```