inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

3) (참고)Dispatch Work Item(디스패치 워크 아이템)

DispatchWorkItem의 qos 관련해 질문 있습니다.

해결된 질문

357

sujinnaljin

작성한 질문수 13

1

안녕하세요 앨런님~ 월요일 잘 보내셨나요 ~_~!! 다름이 아니라 DispatchWorkItem의 qos 관련해 질문이 있어 돌아왔습니다..! 허허...

DispatchWorkItem(qos: .utility) { }

위와 같이 DispatchWorkItem 을 생성할 때 qos 파라미터를 통해 작업의 우선순위를 설정할 수 있는데요! 이는 기존 clousure 로 보낼 때, .async(qos: .utility) 에서 qos 를 설정해준 것과 대응되는 작업이지요?

그리고 1:20초 즈음 qos 없이 DispatchWorkItem 을 생성할때 defualt qos 는 global 이라고 설명 주시는것 같은데, 실제로 init 함수를 살펴보니 .unspecified로 지정이 되어있는 것 같더라고요. 혹시 제가 중간에 설명을 잘못 이해한걸까요 ?_?

감사합니다 :)

ios swift

답변 5

1

앨런(Allen)

네 제 생각에는
그정도면 충분할 것 같습니다 ㅎㅎ


네 저도 감사드리고 좋은 밤 되세요 :) 🙏🏻

1

sujinnaljin

아하 네넵 우선은 제 이해력의 한계로...! 애플에서는 unspecified 로 설정 되어 있다.. 정도로만 가져가야겠네요 🤔

나중에 unspecified 일때 default를 따라가는 경우도 있다..? 정도의 비슷한 내용을 보게 되면 그때 다시 설명주신 내용 참고해보도록 하겠습니다

답변 감사합니다!! :) 

1

앨런(Allen)

아 네네! 맞아요! 그런 의미로 말씀드린게 맞습니다 ^^;

.default요!!

제가 헷갈리게 말씀을 드렸군요ㅠㅠ

1

sujinnaljin

뭔가 unspecified 는 공식 문서에 나와있는 설명도 그렇고.. 다른 글들을 살펴봐도 명확하지 않은거 같아요ㅜㅜ

그렇다면 앨런님이 설명주신 "qos 가 global 을 따라간다"는 의미는, (사실 global 이라는 qos 는 없기 때문에) global dispatchQueue 의 기본 qos 인 default를 따라간다는 말씀이실까요..? (쓰고 보니 뭔가 더 잘못 이해하고 있는거 같네요..? )

1

앨런(Allen)

안녕하세요 수진님 :)

1.
네 정확하게 맞습니다. DispatchItem을 생성할때의 qos는 클로저로 보낼때의 .async(qos: .utility) 에서 qos를 설정해준 것과 동일합니다. (대응되는 작업입니다.)

2.
설명은 잘못이해하신게 아닌 것 같고, (정확하게 따져보면) 수진 님께서 말씀하신대로 애플 문서에 나와있는 .unspecified 가 디폴트가 맞을 것 같습니다. 다만, 해당 "unspecified"자체가(특정되지 않은)  https://developer.apple.com/documentation/dispatch/dispatchqos/1780703-unspecified
라고 정의가 되어있어서, 제가 알기로는 "특정되지 않은 경우" (레거시API도 지원하지만) 그 외에 기본적인 설정(default global)을 따라간다. 라고 되어있어서, 제가 예전에 참고했던 (레이웬더리치) 자료에서 그렇게 기술하고 있어서 그 내용을 그대로 인용했던 것 같습니다. 제가 참고했던 자료보다 어쨌든 애플문서가 더 우선일테니 수진 님께서 자료를 찾으신 내용을 우선으로 생각하시면 될 것 같습니다. :)

unspecified라는 워딩 자체에 대해선, 저도 애플이 공식적인 문서 내용에서 밖에 참고해서 말씀드릴 수 밖에 없으므로.. 더 이상의 깊은 내용은 제가 전달해드릴 수 있는 수준을 벗어나는 내용인 것 같습니다...

이정도로 답변이 되셨으면 하는 바람입니다....^^;

감사합니다. :)

오퍼레이션 큐 질문

0

128

2

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

0

145

2

warning 뜸

0

151

1

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

0

273

1

예제 프로젝트 빌드 실패

0

331

2

serial 큐 질문드립니다.

0

251

1

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

0

325

1

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

0

284

1

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

0

432

1

dismiss 되었을 때 종료질문

0

303

1

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

0

491

2

Dependency Protocol 관련

1

364

1

시리얼 큐와 sync 관련

0

464

2

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

0

645

1

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

0

385

1

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

1

501

2

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

0

391

1

안녕하세욤

1

339

1

Barrier 작업 관련 질문입니다.

1

340

1

디스패치 그룹

1

381

1

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

2

379

2

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

1

285

2

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

1

369

1

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

1

321

1