inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

앨런 iOS Concurrency(동시성) - 디스패치큐와 오퍼레이션큐의 이해

1) 반드시 메인큐에서 처리해야하는 작업 2) sync메서드에 대한 주의사항 3) weak, strong캡처 주의 4)컴플리션핸들러의 존재이유 5) 동기적함수를 비동기함수 처럼 만드는 방법

비동기 함수 만드는 법에 대해서 질문드립니다!

188

DrStyle

작성한 질문수 1

1

안녕하세요. 강의 잘 듣고 있습니다.
질문이 하나 있어서요!
 

func asyncTiltShift(_ inputImage: UIImage?, runQueue: DispatchQueue, completionQueue: DispatchQueue, completion: @escaping (UIImage?, Error?) -> ())

 
runQueue와 completionQueue의 type이 DispathQueue로만 되어있던데, .체이닝으로 보니 main과 global은 안나오더라구요.
 
이 부분을 이해하려면, asyncTiltShift 메서드에 인자 DispatchQueue만 있다는 것은 DispatchQueue가 main과 global을 사용할 수 있어서 라고 이해하면 될까요?
 
수업에 나와있지않은 부분이라 실례를 무릎쓰고 여쭤봅니다^^;;
 

swift ios

답변 1

2

앨런(Allen)

아 네 안녕하세요!
DrStyle 님!

함수를 만들때는 타입을 쓰는 것이고, 함수를 실행할때는 실제 값을 줘야하는 것이라서 그렇습니다.

제가 위에 예시를 만들어서 붙였는데.. 아마 위에 이미지를 보시면 바로 이해하시지 않을까 하는데...

DispatchQueue는 타입이고, 
DispatchQueue.main 또는 DispatchQueue.global( ) 이것은 인스턴스이니까..

함수를 정의할때는 타입으로.. 실제 실행할때는 인스턴스 값을 줘서 실행하는... 이런 것으로 이해하시면 될 것 같아요^^;  (살짝 헷갈리신 듯 합니다..ㅎㅎ)


혹시나 이해가 안되시면 질문 다시 남겨주세요!

고맙습니다. :)

오퍼레이션 큐 질문

0

147

2

2) 오퍼레이션큐(OperationQueue) 강의 질문입니다

0

153

2

warning 뜸

0

169

1

수업자료 markup 에 대해 궁금합니다!

0

285

1

예제 프로젝트 빌드 실패

0

344

2

serial 큐 질문드립니다.

0

261

1

[7-3.DispatchBarrier] 예제 코드 질문

0

337

1

안녕하세요, GCD 관련 질문드립니다..

0

292

1

main.async 작동 질문(+ vs global(),async)

0

442

1

dismiss 되었을 때 종료질문

0

314

1

'동기'와 '동시성 프로그래밍'에 대해 질문드립니다.

0

510

2

Dependency Protocol 관련

1

376

1

시리얼 큐와 sync 관련

0

477

2

sync이지만 Queue에 넣으면 async로 동작한다는 말의 의미

0

658

1

lazy var 이슈로 생긴 여러 변수들은 어디에 있나요?

0

391

1

global큐에 sync로 작업을 보냈을 때는 터지지 않는 이유가 궁금합니다.

1

518

2

비동기 개념에서 무엇을 return하는 거죠??

0

398

1

안녕하세욤

1

348

1

Barrier 작업 관련 질문입니다.

1

350

1

디스패치 그룹

1

386

1

global async안에 global async를 만들게되면 어떻게 되나요??

2

392

2

동기적 함수를 비동기적 함수로 바꾸는 부분에서 질문 있습니다

1

296

2

비동기오퍼레이션 관련 질문

1

378

1

강의자료는 어디에 있나요?

1

328

1