[swift] DispatchOnce를 이용한 단일 실행 처리 방법
단일 실행 처리는 Swift 및 Objective-C에서 매우 일반적인 요구 사항입니다. 특히 앱 초기화 논리나 싱글톤 객체 생성과 같은 상황에서 단일 실행 처리가 필요합니다. 이러한 상황에서는 DispatchOnce
를 사용하여 단일 실행을 보장할 수 있습니다.
DispatchOnce란 무엇인가요?
DispatchOnce
는 Grand Central Dispatch(GCD)의 함수 중 하나로, 특정 코드 블록이 단 한 번만 실행되도록 보장합니다. 이를 통해 여러 스레드에서 동시에 실행되더라도 해당 코드가 한 번만 실행되도록 할 수 있습니다.
DispatchOnce를 이용한 단일 실행 처리 방법
아래는 Swift에서 DispatchOnce
를 이용하여 단일 실행 처리를 구현하는 방법입니다.
private var onceToken: Int = 0
func performTaskOnce() {
DispatchQueue.once(token: &onceToken) {
// 단일 실행이 보장되어야 하는 코드 블록
print("This code will only be executed once")
}
}
위의 코드에서 performTaskOnce
함수는 단일 실행이 보장되어야 하는 로직을 포함하고 있습니다. onceToken
을 사용하여 해당 코드 블록이 한 번만 실행되도록 보장합니다.
결론
DispatchOnce
를 사용하면 어플리케이션에서 단일 실행이 보장되어야 하는 상황에서 간편하게 처리할 수 있습니다. 이를 통해 코드의 안정성을 높일 수 있으며, 다중 스레드 환경에서의 문제를 방지할 수 있습니다.
위의 예시는 Swift를 기준으로 하였지만, Objective-C에서도 비슷한 방법으로 DispatchOnce
를 활용할 수 있습니다.
참고자료: