iOS/Swift Concurrency

@globalActor

Hamp 2025. 5. 18. 20:17
반응형

👋 들어가기 전

이번 포스팅은 글로벌 Actor라는 내용을 학습해보자.

엑터를 공부한 이후, @MainActor를 공부했는데 , @MainActor처럼 쓸 수 있게

 

내가 커스텀으로 만들어낼 수 있는 방법이 있다.

🏁 학습할 내용

  • 글로벌 엑터란

🌐 Global 엑터란

⭐️ 정의

앱 전반적으로 사용되는 엑터 타입

MainActor도 글로벌 엑터의 한 종류이다.

 

🧰 사용법 

  1. @globalActor를 actor선언 시 붙혀준다.
  2. static 형태의 shared 변수를 만들어준다.
@globalActor
actor MyGlobalActor {
  static let shared: MyGlobalActor = MyGlobalActor()

  ...
}

@MyGlobalActor
final class A {
  var arr: [Int] = []
}

✨ 특징

  • @MainActor를 쓰는 것 처럼 함수. 프로퍼티, 선언문, Task 클로저등에 사용가능하다.
  • 컴파일 타임에 엑터 보장을 검사하고, Task 클로저에서는 실행을 글로벌 엑터의 실행자이게 전달한다.

출처

https://developer.apple.com/documentation/swift/globalactor

 

GlobalActor | Apple Developer Documentation

A type that represents a globally-unique actor that can be used to isolate various declarations anywhere in the program.

developer.apple.com

https://velog.io/@j_aion/SwiftUI-globalActor

 

[SwiftUI] @globalActor

How to use Global Actors in Swift (@globalActor) | Swift Concurrency MainActor의 작동이 메인 스레드를 통해 이루어지는 게 보장(싱글턴)되는 것과 마찬가지로 특정 액터 사용을 글로벌 스레드를 통해 사용할 수

velog.io

 

반응형