Sobes.tech
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 এর মাধ্যমে নয়।