Swift actors are reference types that protect mutable state. They provide synchronization for shared mutable state and isolate their own state from the rest of the program. State is held within a single concurrency domain, meaning only a single thread will access that data at a given time, even when many clients are concurrently making requests of the actor.
Actors provide the same race and memory safety properties as async/await, while providing the familiar abstraction and reuse features that other explicitly declared types in Swift enjoy.
Actors share many similar capabilities to other Swift types like classes, structs and enums. Actors can have initializers, methods, properties, can be extended, be generic, and be used with generics. Their distinguishing factors are the synchronization and data isolation which set them apart.