Actor 4

Actor에서 Class + OSAllocatedUnfairLock

Actor에서 Class + OSAllocatedUnfairLock 상태 보호를 위해서 actor로 작성된 객체를 class + OSAllocatedUnfairLock으로 변경프로파일링 과정에서 특정 메서드의 호출 빈도가 높아지는 경우 지속적으로 CPU Usage가 높게 잡히는 부분이 있어서 확인 Actor 기반으로 작성한 메서드를 실행했을 때completeTaskClousre로 나타나는 영역에서 Weight를 많이 차지함.해당 메서드의 구현부는 swiftlang / swift에 존재.https://github.com/swiftlang/swift/blob/main/stdlib/public/Concurrency/Task.cpp 간단한 Task를 컨텍스트에 넣어서 클로저로부터 최종 반환을 처리하는 함수 /..

Meet distributed actors in Swift - WWDC22

Meet distributed actors in Swift - WWDC22 Swift의 동시성을 단일 프로세스 이상으로 활용하는 방법에 대해 알아볼 것 Distributed Actor와 상호작용 하는 방식을 바꾸지 않고도 잠재적으로 멀리 있을 수 있는 것을 의미이는 분산된 Actor가 어디에 있든 간에 동일한 방식으로 소통할 수 actor 간 소통이 가능함을 의미.이는 테스트에 있어 코드의 구현을 변경할 필요 없이 actor를 이동시킬 수 있음. 분산 Actor를 선언하려면 Swift 5.7에서 도입된 Distributed를 선언해야 함. distibuted를 사용하면 actor는 컴파일 타임에 검사 가능함. id는 distibuted actor 시스템에서 actor를 고유하게 식별하는데 사용...

apple/WWDC 2025.04.30

Protect mutable state with Swift actors - WWDC21

Protect mutable state with Swift actors - WWDC21 actor를 활용해 동시에 실행되는 상황에서 mutable state를 보호하는 방법에 대해서 알아볼 것. 목차- Actors- Actor reentrancy- Actor isolation- Main actor 근본적으로 어려운 것은 데이터 경합 상황을 피하는 것.데이터 경쟁은 여러 개의 서로 다른 스레드가 동일한 데이터에 접근하고 이 중 하나 이상이 쓰기 동작일 때 발생이 문제는 발생하기 쉽지만 디버깅은 매우 어려움. 데이터 경합 상황에 의하여 둘 다 값이 1 혹은 둘 다 2가 나타나는 상황이 발생할 수 있음.데이터 경합은 공유된 변경 가능한 상태로 인해 발생함.데이터가 변경되지 않거나 여러 동시 작업이 발생하지..

apple/WWDC 2025.04.27