본문 바로가기

thread2

@MainActor, @globalActor 조금 더 이해하기 @MainActor, @globalActor 는 결국 actor의 종류이다. 우선 actor를 왜 쓸까? 비동기적인 상황에서 concurrency를 보장해주기 위해서 사용하는 것이다. @MainActor의 경우, 진행되는 동작을 Main thread로 보내고, thread safe하게 동작함을 보장한다. (DispatchQueue.main의 역할과 비슷) @MainActor와 동일한 이유로, @globalActor 역시, 해당 globalActor를 사용하게 되면 background에서 진행되는 동작들의 concurrency를 보장하고 해당 @globalActor를 전역변수로 만들어 @MainActor를 사용할 때와 동일하게 어떤 상황에서도 사용하기 쉽게 만드는 것이다. 'MainActor.run'이 사.. 2022. 12. 23.
class대신 actor가 요긴한 상황! 해당 글은 Actor에 대한 아주 기본적인 이해만 있다면 이해하는 데 아무 문제가 없습니다! Actor에 대해서 알아보고, 알아봤다는 현상만이 내 머리 속에 남았는데.. 그중 생각나는 중요한 부분이! Class와 거의 동일한 부분이 많았지만, Class가 thread safe 하지 않다면, Actor는 thread safe하다는 것이다. 그래서..! 아 그럼 Actor가 나온 배경은 Class의 thread safe문제를 해결 할 수 있어서 나왔겠구나! 라고 생각하게 되었고, 실제로 탄생 배경이 그러했다. 그럼, 이 글에서는 1. 어떤 문제를 Actor가 풀어야 했는지! 2. 그래서 Actor가 있기 전에도 동일한 문제가 있었을텐데 어떻게 해당 문제가 풀리고 있었는지 3. 그 문제를 Actor를 활용해서.. 2022. 12. 19.