Junior — Middle
რა ტიპის ატომური ოპერაციები იცით Swift-ში?
sobes.tech AI
პასუხი AI-სგან
Swift-এ, অ্যাটোমিক অপারেশনগুলি সাধারণত মাল্টিথ্রেড পরিবেশে ভাগ করা সম্পদগুলিতে নিরাপদ অ্যাক্সেসের সাথে সম্পর্কিত। ভাষাটি নিজে কোনও অন্তর্নির্মিত অ্যাটোমিক primitives সরবরাহ করে না, তবে ব্যবহার করা যেতে পারে:
- DispatchQueue এর মাধ্যমে
syncবাasyncব্যবহার করে ক্রমাগত অ্যাক্সেসের জন্য। - OSAtomic ফাংশনগুলি (প্রাচীন, সুপারিশ করা হয় না)।
- stdatomic.h C11 থেকে C স্তরের অ্যাটোমিক অপারেশনের জন্য।
- NSLock, NSRecursiveLock এবং অন্যান্য লক অবজেক্টগুলি সমালোচনামূলক বিভাগগুলি রক্ষা করার জন্য।
- Swift 5.5+ থেকে আপনি
@Sendableএবংactorব্যবহার করতে পারেন নিরাপদভাবে অবস্থা নিয়ে কাজ করার জন্য।
উদাহরণস্বরূপ, DispatchQueue ব্যবহার করে অ্যাটোমিক ইনক্রিমেন্টের উদাহরণ:
class AtomicCounter {
private var value = 0
private let queue = DispatchQueue(label: "atomic.counter.queue")
func increment() {
queue.sync {
value += 1
}
}
func get() -> Int {
return queue.sync { value }
}
}
অতএব, Swift-এ অ্যাটোমিক অপারেশনগুলি সিঙ্ক্রোনাইজেশন এবং লকিং এর মাধ্যমে বাস্তবায়িত হয়, অন্তর্নির্মিত অ্যাটোমিক primitives এর মাধ্যমে নয়।