Sobes.tech
Middle

Main жана globalда колдонулган кезек түрлөрү кандай?

sobes.tech AI

AIден жооп

Main queue - бул последовательдүү кезек (serial queue), ал негизги агымда (main thread) иштейт. Ал колдонуучунун интерфейсин жаңыртуу жана UI окуяларын иштетүү үчүн колдонулат. Main queue'га жөнөтүлгөн бардык тапшырмалар катар менен аткарылат.

Global queues - бул системадан берилген параллелдүү кезектер (concurrent queues). Алар фондук тапшырмаларды аткаруу үчүн колдонулат, ал UI менен байланышсыз, бул main thread'дин блоктонуусунан сактайт. QoS (Quality of Service) артыкчылыктары менен ар кандай глобалдык кезектер бар.

Мына QoS артыкчылыктары боюнча негизги глобалдык кезектердин таблицасы:

QoS артыкчылыгы Түшүндүрмө Колдонуу мисалы
userInteractive Эң жогорку артыкчылык. UI менен өз ара аракеттенүү үчүн талап кылынган тапшырмалар үчүн колдонулат Анимациялар, тийүү окуяларын иштетүү
userInitiated Жогорку артыкчылык. Колдонуучу тарабынан түздөн-түз башталган жана тез натыйжа талап кылган тапшырмалар үчүн Издөө натыйжаларын көрсөтүү, мазмун жүктөө
default Стандарттык артыкчылык. userInitiated жана utility ортосунда Артыкчылык так көрсөтүлбөгөн тапшырмалар
utility Орто артыкчылык. Узак мөөнөттүү тапшырмалар үчүн, фондук режимде аткарылат Файлдарды жүктөө, маалыматтарды иштетүү
background Төмөнкү артыкчылык. Колдонуучунун көңүлүн бөлбөчү тапшырмалар үчүн Маалыматтарды синхрондоштуруу, резервдик көчүрмө
unspecified Артыкчылык көрсөтүлгөн эмес. Система башка факторлорго негизделип аны аныктайт Ашыкча колдонулбайт

Мисал: main жана глобалдык кезекке тапшырма жөнөтүү:

DispatchQueue.main.async {
    // UI жаңыртуу коду
}

DispatchQueue.global(qos: .userInitiated).async {
    // Жогорку артыкчылык менен фондук тапшырма аткаруу коду
    // Аягында, UI жаңыртуу үчүн main queue'га кайтуу керек болушу мүмкүн
    DispatchQueue.main.async {
        // Фондук тапшырманын аяктагандан кийин UI жаңыртуу
    }
}