투케이2K

130. (swift/xcode) Dispatch Group 사용해 task 작업 그룹화 및 동기 방식 로직 처리 실시 본문

Swift

130. (swift/xcode) Dispatch Group 사용해 task 작업 그룹화 및 동기 방식 로직 처리 실시

투케이2K 2022. 11. 20. 17:11

[개발 환경 설정]

개발 툴 : XCODE

개발 언어 : SWIFT

 

[소스 코드]

    // MARK: - [테스트 메인 함수 정의 실시]
    func testMain() {
        print("")
        print("====================================")
        print("[\(self.ACTIVITY_NAME) >> testMain() :: 테스트 함수 시작 실시]")
        print("====================================")
        print("")
        
        
        /*
         -------------------------------
         [요약 설명]
         -------------------------------
         1. Dispatch Group : 서로 다른 task 들을 그룹화 하여 작업들이 완료될때까지 기다리거나 완료되면 알림을 받을 수 있습니다
         -------------------------------
         2. Dispatch Group 는 그룹에 포함된 모든 작업이 완료되어야 그룹이 완료됩니다
         -------------------------------
         */
        
        
        // [DispatchQueue 선언 실시]
        let myQueue = DispatchQueue(label: "testScheduler")


        
        // [DispatchGroup 선언 실시]
        let myGroup = DispatchGroup()

        
        // [first 작업 시작]
        myGroup.enter() // [시작]
        myQueue.async {
            for i in 1...2 {
                print("")
                print("====================================")
                print("first :: \(i)")
                print("====================================")
                print("")
            }
            myGroup.leave() // [완료]
        }

        
        // [second 작업 시작]
        myGroup.enter() // [시작]
        myQueue.async {
            for i in 3...4 {
                print("")
                print("====================================")
                print("second :: \(i)")
                print("====================================")
                print("")
            }
            myGroup.leave()
        }

        
        // [전체 완료 알림]
        myGroup.notify(queue: myQueue) {
            print("")
            print("====================================")
            print("myGroup task End")
            print("====================================")
            print("")
        }

    }
 

[결과 출력]


반응형
Comments