Sobes.tech
Junior — Middle

Pode explicar o que se entende por termo GlobalActor no contexto do Swift?

sobes.tech IA

Resposta da IA

Em Swift, GlobalActor é um atributo especial que permite definir um âmbito de execução global para código assíncrono, garantindo a segurança no acesso a recursos partilhados.

Quando marca uma classe, estrutura ou função com o atributo @GlobalActor, indica que todas as chamadas a esse código devem ser executadas num contexto específico (ator), que serializa o acesso, prevenindo condições de corrida.

Exemplo de definição de um ator global:

@globalActor
struct MyGlobalActor {
    static let shared = MyActor()
}

actor MyActor {
    // implementação
}

@MyGlobalActor
class SharedResource {
    var value = 0

    func update() {
        value += 1
    }
}

O uso de GlobalActor é conveniente para gerir de forma centralizada o acesso a estados ou recursos partilhados numa aplicação, especialmente em ambientes multithread com async/await.