투케이2K

136. (swift/xcode) OperationQueue , BlockOperation 오퍼레이션 큐 사용해 동기 순차 로직 구현 실시 본문

Swift

136. (swift/xcode) OperationQueue , BlockOperation 오퍼레이션 큐 사용해 동기 순차 로직 구현 실시

투케이2K 2022. 11. 25. 12:31

[개발 환경 설정]

개발 툴 : XCODE

개발 언어 : SWIFT

 

[소스 코드]

    // MARK: - [테스트 메인 함수 정의 실시]
    func testMain() {
        print("")
        print("====================================")
        print("[\(self.ACTIVITY_NAME) >> testMain() :: 테스트 함수 시작 실시]")
        print("====================================")
        print("")
        
        
        /*
         -------------------------------
         [요약 설명]
         -------------------------------
         1. OperationQueue 는 연산 (Operation) 의 실행을 관리하고 대기열의 동작관리를 수행합니다
         -------------------------------
         2. OperationQueue 종류 :
         
         - Main : 메인 스레드에서 동작 (ex - UI)

         - Background : 백그라운드 스레드에서 동작 (ex - Network)
         -------------------------------
         */
        
        
        // [OperationQueue 선언 실시]
        let queue = OperationQueue()
        queue.maxConcurrentOperationCount = 1 // 오퍼레이션 큐 사이즈 지정
        
        
        // [BlockOperation 사용해 동기 순차 로직 작성]
        for i in 1 ... 2 {
            let operation = BlockOperation {
                
                // [메소드 호출 수행]
                self.countTast(str: "\(i)")
            }
            // [오퍼레이션 추가]
            queue.addOperation(operation)
        }

    }
    
    
    
    
    
    // MARK: - [카운트 다운 로직 처리]
    func countTast(str: String){
        print("")
        print("====================================")
        print("[\(self.ACTIVITY_NAME) >> countTast() :: tast start =>> \(str)]")
        print("====================================")
        print("")
        
        for i in 1 ... 2 {
            print("")
            print("====================================")
            print("[\(self.ACTIVITY_NAME) >> tast [\(str)] :: \(i)]")
            print("====================================")
            print("")
        }
        
        print("")
        print("====================================")
        print("[\(self.ACTIVITY_NAME) >> countTast() :: tast end =>> \(str)]")
        print("====================================")
        print("")
    }
 

[결과 출력]


 

반응형
Comments