Sobes.tech
Middle+

Актёр деген эмне?

sobes.tech AI

AIден жооп

Swift-деги Actor (Актёр) — бул өзүнүн абалын изоляциялай турган түр, ал ар башка агымдардан бир убакта кирүүгө жол бербейт жана ошентип маалымат күрөшүн жокко чыгарат.

Негизги өзгөчөлүктөрү:

  • Абалды изоляциялоо: Актёрдун бардык мүнөздөмөлөрү анын методдорунан же башка актёрлордон гана тиешелүү кирүү модификаторлору менен жеткиликтүү.
  • Асинхрон өз ара аракеттенүү: Актёрдун методторуна сырттан чакыруулар дайыма асинхрондуу жана await талап кылынат. Бул абалга кирүүнү атомдук кылат.
  • Мурас алуу жок: Актёрлор мурас алууну колдобойт.
  • nonisolated let жок: Мүнөздөмөлөр nonisolated деп белгилениши мүмкүн, эгер алар константалар (let) жана агымга коопсуз түргө ээ болсо. Бул аларга awaitсыз жетүүгө мүмкүндүк берет.

Мисал:

actor Counter {
    private var value = 0

    func increment() {
        value += 1
    }

    func getValue() -> Int {
        return value
    }
}

Колдонуусу:

// Изоляция себептүү асинхрон чакыруусу керек
let myCounter = Counter()
await myCounter.increment()
let currentValue = await myCounter.getValue()

Актёрлор Swiftтин жаңы атаандаштык моделинин негизги компоненти болуп саналат, бөлүштүрүлгөн өзгөрмө абалды коопсуз жана түзүмдүү башкаруунун жолун камсыз кылат.