티스토리 뷰
Concurrency Programming Guide
▶︎ The Move Away from Threads
의 내용을 학습차원에서 번역했습니다. 오역, 지적사항 댓글 환영합니다 ^-^
♣︎ 스레드로부터 떠나라 The Move Away from Threads
비록 스레드가 수년간 그들자신의 역할을 수행하고 있지만, 스레드는 확장가능한 방식대로 다수의 동작을 처리하는 일반적인 문제를 해결할 수 없습니다. 스레드와 함께, 확장가능한 해결책을 만드는 부담은 개발자의 어깨위에 쌓입니다. 당신은 얼마나 많은 스레드를 만들지, 시스템조건이 변화함에 따라 동적으로 몇개의 스레드로 조절할 지 결정해야만 합니다. 또 다른 문제는 어플리케이션을 사용하는 스레드를 관리하고, 만들면서 발생하는 대부분의 비용을 떠맡아야 하는 것입니다.
스레드에 의존하는 대신, OS X, iOS는 동시성문제를 해결하기 위해 비동기적인 설계 접근방식을 취합니다. 비동기 함수들은 운영체제 내에서 수년간 존재해왔으며 디스크를 통해 데이터를 읽는 등의 장기간 소요가 예상되는 작업을 시작하기 위해 자주 사용되었습니다. 비동기함수가 호출될 때, 비동기 함수는 작동을 위해 화면 뒤에서 일을 하게 되는데 실제로는 완료되기 전에 함수는 반환을 하게 됩니다. 전형적으로, 이 작업은 백그라운드 스레드를 만들고, 원하는 동작을 스레드에서 시작하고, 작업이 완료되었을 때 (보통 콜백함수를 통해) 호출자에게 알람을 전송합니다.
과거에는 만약 당신이 원하는 일을 위한 비동기 함수가 존재하지 않았을경우, 당신은 장신만의 비동기함수를 만들고, 작성해야했을 수 있습니다. 하지만 지금은, OS X와 iOS는 직접 스레드를 관리할 필요없이 비동기적인 작업들을 수행할 수 있는 기술을 제공합니다.
♣︎ 비동기 처리기술 1, Grand Central Dispatch(GCD)
동기작업을 시작하기 위한 하나의 기술 중 하나는 Grand Central Dispatch(GCD)입니다. 이 기술은 당신의 앱 내에서 일반적으로 작성할 수 있는 스레드 관리코드를 얻고, 이 코드를 시스템수준으로 이동시킵니다. 당신이 해야할 것은 실행시키고 싶은 작업을 정의하고 이들을 적당한 dispatch queue에 추가하는 것입니다. GCD는 필요한 스레드들의 생성을 관리하고 해당 스레드들에서 작업이 돌아가도록 예약을 합니다. 이제 스레드관리는 시스템의 일부이기에, GCD는 전통적 스레드기법 보다 작업관리와 실행을 위한 전체론적 접근을 제공합니다.
♣︎ 비동기 처리기술 2, OperationQueue
오퍼레이션큐(Operation queues)는 디스패치큐(dispatch queues)와 매우 유사한 동작을 수행하는 Objective-C 객체입니다. 당신은 실행하고자 하는 작업을 정의하고 이 작업들을 오퍼레이션큐에 추가할 수 있습니다. 오퍼레이션 큐는 이러한 실행하려는 작업들을 추가받아 실행하고, 계획하는 것을 다룰 수 있습니다. GCD처럼 말이죠. 오퍼레이션 큐는 당신을 위한 모든 스레드의 관리를 다뤄주며, 시스템 내에서 가능한 효율적으로 그리고 빠르게 실행될 수 있도록 보장해줍니다.
다음 이어지는 섹션들은 디스패치큐(dispatch queues), 오퍼레이션큐(operation queues), 그리고 그 외 다른 관련된 당신의 앱을 위해 사용가능한 비동기적 기술들을 제공합니다.
holistic 전체론의
▼ 개발자 문서 이어서 보기 :)
'iOS 개발 > 개발자문서 정보' 카테고리의 다른 글
iOS 테이블뷰 행,섹션 관리 UITableViewDataSource 개요 (0) | 2019.08.13 |
---|---|
애플 비동기 GCD기능, DispatchSource 문서개요읽기 (0) | 2019.06.20 |
애플 비동기처리 GCD기능, DispatchQueue 문서읽기 (0) | 2019.06.15 |
Concurrency and Application Design 애플개발자문서 개요 (0) | 2019.06.09 |
동시성프로그래밍 애플개발자문서 개요 읽어보기 (0) | 2019.06.09 |
- Total
- Today
- Yesterday
- 백준swift
- CoreML
- swift
- swift 문자열
- createML
- 부스트코스
- 백준알고리즘
- 프로토콜
- Collection
- ios
- Protocol
- SwiftUI
- 컬렉션
- 개발자문서
- 알고리즘
- uikit
- 알고리즘문제
- swift string
- 프로그래머스
- 프로그래머스swift
- 자연어처리
- publisher
- swift reduce
- swift 기초
- swift알고리즘
- 김프매매
- 스위프트
- swift문제
- swift언어
- Swift 알고리즘
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |