Sobes.tech
Junior — Middle

Окуу жана жазуу учурунда өзгөрмөгө биргелешип кирүү үчүн кайсы синхрондоштуруу ыкмалары колдонулат?

sobes.tech AI

AIден жооп

iOS'да өзгөрмөгө коопсуз жалпы кирүү камсыз кылуу үчүн окуу жана жазуу учурунда көбүнчө төмөнкү синхрондоштуруу ыкмалары колдонулат:

  • Dispatch кезектери (GCD): үзгүлтүксүз кезектер (DispatchQueue) операцияларды үзгүлтүксүз жүргүзүүгө мүмкүндүк берет жана маалыматтардын таймашуусун алдын алат. Мисалы, DispatchQueue.sync же DispatchQueue.async менен үзгүлтүксүз кезек колдонсо болот.

  • NSLock жана башка блоктоо объекттери: NSLock, NSRecursiveLock, NSCondition ресурска түздөн-түз кирүүнү блоктоого мүмкүндүк берет.

  • @synchronized (Objective-Cде): кодду блоктоо үчүн синтаксистик түзүм.

  • Атомдук мүнөздөмөлөр: Objective-Cде мүнөздөмөлөрдү atomic деп жарыялоо мүмкүн, бирок бул ар дайым кыйын операциялар үчүн жетиштүү эмес.

  • Окуу-жазуу блоктоолору: мисалы, pthread_rwlock_t окуу жана жазуу кирүүсүн бөлүү үчүн.

Мисал катары, DispatchQueue колдонуп, өзгөрмөгө кирүүнү синхрондоштуруу:

class ThreadSafeCounter {
    private var value = 0
    private let queue = DispatchQueue(label: "com.example.counterQueue")

    func increment() {
        queue.sync {
            value += 1
        }
    }

    func getValue() -> Int {
        return queue.sync { value }
    }
}